Software Engineering Design Patterns in Java & Android

Welcome to my course: Software Engineering Design Patterns in Java and Android

It is the Design Patterns which is a part of Software Engineering, not to confused with UI Design Patterns that they focus how to design User Interface and User Experience to be easier to use and more friendly. Here with the Software Engineering, Design Patterns is about creating software to be easier to re-use, more flexible, and more loosely couple. What is the Design Patterns then? Well, you know Object Oriented Programming, right? Like C++, C#, Java, Python, PHP 6, Ruby, Swift, Objective C or even VB.NET. People tell you that OOP is awesome because you can have one class that can re-create as many objects as you like. And you have inheritance that lets you receive awesome methods from a parent class. Well, it is also awesome when a lot f of classes can do a lot of things, connect to a lot of classes. It is a freedom, but maybe too many freedoms. So how to control it? how to combine it with a rule? how to call many classes from a class? how to hide things? how to to plug a class to another? how to callback? Those many questions can be answered in Design Patterns. It is not one answer to those questions. That is why Design Patterns come with an S. There are 23 Design Patterns from Gang of Four.

Design Patterns were coined by 4 of Software Engineers or computer geeks (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissdies), I should say, lead by Erich Gamma, also known as Gang of Four. Everyone now and then, you would it as the GoF or Gang of Four Design Patterns. The originality of the code was in C++ and Smalltalk. The book “Design Patterns Elements of Reusable for Object-Oriented Software” that they wrote are still relavant and popular until to these days. I believe it is never dated. Why? Because as long as we are the programmers still use OOP paradigm, Design Patterns never die. What patterns you will study in this series?

At first, I will start the top 10 most popular design patterns that most programmers must know. Those are:
1. Singleton
2. Factory, both Factory Method and Abstract Factory
3. Builder
4. Observer
5. Adapter
6. Strategy
7. Command
8. Iterator
9. Composite
10. Proxy

And then I go on with the rest of the design patterns list.

In the tutorials, I’m going to Java programming language because I know java more than any other language and also it is gonna be good for Android developers. However, be aware that the techniques can apply to any of your favorite programming language.

Thank you very much,

Oum Saokosal