재우니의 블로그


추천할 만한 java design pattern 사이트







Creational Design Patterns:

Click to zoom
Singleton Pattern
Singleton - Ensure that only one instance of a class is created and Provide a global access point to the object.
When to Use Common Usage Example: Lazy Singleton in JavaExample: Early Singleton in Java
Click to zoom
Factory Pattern
Factory(Simplified version of Factory Method) - Creates objects without exposing the instantiation logic to the client and Refers to the newly created object through a common interface.
When to Use Common Usage
Click to zoom
Factory Method
Document Application Example
Factory Method Example
Factory Method - Defines an interface for creating objects, but let subclasses to decide which class to instantiate and Refers to the newly created object through a common interface.
When to Use Common Usage
Click to zoom
Abstract Factory
Look & Feel Example
Abstract Pattern Example
Abstract Factory - Offers the interface for creating a family of related objects, without explicitly specifying their classes.
When to Use Common Usage Example: Gui Look & Feel in Java
Click to zoom
Builder Pattern
Text Converter Example
Builder Pattern Example
Builder - Defines an instance for creating an object but letting subclasses decide which class to instantiate and Allows a finer control over the construction process.
Example: Text Converter in Java
Click to zoom
Highslide JS
Prototype - Specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype.
Click to zoom
Object Pool
Database Example
Object Pool Example
Object Pool - reuses and shares objects that are expensive to create..
When to Use Common Usage Sourcecode: Database Connection Pool in Java

Behavioral Design Patterns:

Click to zoom
Chain of Responsibility
Chain of Responsibiliy - It avoids attaching the sender of a request to its receiver, giving this way other objects the possibility of handling the request too.
- The objects become parts of a chain and the request is sent from one object to another across the chain until one of the objects will handle it.
Sourcecode:
Click to zoom
Command Pattern
Restaurant Example
Command Pattern Example
Command - Encapsulate a request in an object, Allows the parameterization of clients with different requests and Allows saving the requests in a queue.
Sourcecode: Buying/Selling stocks in Java
Click to zoom
Interpreter Pattern
Interpreter - Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language / Map a domain to a language, the language to a grammar, and the grammar to a hierarchical object-oriented design
Sourcecode: Romans Numerals Converter in Java
Click to zoom
Iterator Pattern
Iterator - Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation.
Sourcecode: Java Iterator
Click to zoom
Mediator Pattern
Mediator - Define an object that encapsulates how a set of objects interact. Mediator promotes loose coupling by keeping objects from referring to each other explicitly, and it lets you vary their interaction independently.
Sourcecode:
Click to zoom
Observer Pattern
News Publisher Example
Highslide JS
Observer - Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
Sourcecode: News Publisher in Java
Click to zoom
Strategy Pattern
Robot Example
Highslide JS
Strategy - Define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.
Sourcecode: Robot Application in Java
Click to zoom
Template Method
Travel Example
Highslide JS
Template Method - Define the skeleton of an algorithm in an operation, deferring some steps to subclasses / Template Method lets subclasses redefine certain steps of an algorithm without letting them to change the algorithm's structure.
Sourcecode: Travel Agency Application in Java
Click to zoom
Visitor Pattern
Customers Example
Visitor Pattern Example
Visitor - Represents an operation to be performed on the elements of an object structure / Visitor lets you define a new operation without changing the classes of the elements on which it operates.
Sourcecode: Customers Report Example
Click to zoom
Null Object Pattern
Null Object - Provide an object as a surrogate for the lack of an object of a given type. / The Null Object Pattern provides intelligent do nothing behavior, hiding the details from its collaborators.
Sourcecode:

Structural Design Patterns:

Click to zoom
Adapter Pattern
Adapter - Convert the interface of a class into another interface clients expect. / Adapter lets classes work together, that could not otherwise because of incompatible interfaces.
Click to zoom
Bridge Pattern
Click to zoom
Bridge Pattern
Bridge - Compose objects into tree structures to represent part-whole hierarchies. / Composite lets clients treat individual objects and compositions of objects uniformly.
Sourcecode: Object Persistence Api in Java
Click to zoom
Composite Pattern
Shapes Example
Composite Pattern Example
Composite - Compose objects into tree structures to represent part-whole hierarchies. / Composite lets clients treat individual objects and compositions of objects uniformly.
Sourcecode: Shapes Example in Java
Click to zoom
Decorator Pattern
GUI Example
Decorator Pattern Example
Decorator - add additional responsibilities dynamically to an object.
Sourcecode: Gui Application Example
Click to zoom
Flyweight Pattern
Wargame Example
Flyweight Pattern Example
Flyweight - use sharing to support a large number of objects that have part of their internal state in common where the other part of state can vary.
Sourcecode: Java Wargame Example
Click to zoom
Memento Pattern
Calculator Example
Memento Pattern Example
Memento - capture the internal state of an object without violating encapsulation and thus providing a mean for restoring the object into initial state when needed.
Source Code: Calculator Example in Java
Click to zoom
Proxy Pattern
Image Viewer
Proxy Pattern Example
Proxy - provide a “Placeholder” for an object to control references to it.
Sourcecode: Proxy Pattern in Java