Skip to main content

Gang of Four Design Patterns


Gang of Four(GOF) Design Patterns are divided in to 3 categories.


Creational Design Patterns ( 5 Patterns )


AbstractFactory


Builder Method


Factory Method



Prototype



Singleton


Singleton pattern is used when there is only one instance of the object need to be created per JVM instance. This pattern is used internally by the Connection Pooling to create the objects only on demand.





Structural Design Patterns ( 7 Patterns )


Adapter



Bridge Pattern



Composite Pattern




Decorator Pattern




Facade




FlyWeight


FlyWeight Pattern is used when there are a large number of objects to be created, and they need to be created efficiently. This pattern is used by many frame works to create the objects using configuration.



Proxy




Behavioral Design Patterns ( 11 Patterns )



Chain Of Responsibility Pattern



Command



Interpreter



Iterator



Mediator



Memento

Memento is used internally by Text Editor Applications, where ctr+Z or cmd+Z operations are used to remember the snap shot of the data.


State


State Design Pattern is used where ever the Behavior of the System, as a result of change in the State.



Strategy


Strategy Pattern is used when there a set of Algorithms, and one needs to be chosen dynamically at run time.




Template


Visitor

Comments

Popular posts from this blog

HashMap in Java

1) Implement HashMap in Java, with the put and get operations   HashMap can be implemented in Java Using Arrays. Use the same logic that the Out of the Box   HashMap follows, for resizing, and load factor, when ever the HashMap reaches the size of the   resize with the load factor a new Array is created, and the previous array contents are copied over   to the new Array.  HashMap is Not Synchronized by default. We can synchronize the whole map by using Synchronization, or by using collection.synchronizedmap(map), which synchronizes all the operations on the map. Alternatively We can use the CocurrentHashMap which does not lock the read operations, rather locks the segments that are being written. 2) HashMap vs LinkedHashMap vs IdentityHashMap 3) HashMap vs ConcurrentHashMap 4) Implement a Cache using LinkedHashMap