º¯°æ»çÇ× (°¡Àå ÃÖ±ÙÀÇ "ÀϹÝÀûÀÎ ¼öÁ¤"ºÎÅÍ)
(´Ù¸¥ º¯°æ»çÇ× ¾øÀ½)
-1,4 +1,4 |
- == °³¿ä == |
+ == °³¿ä == |
= |
= OOP ¼ÒÇÁÆ®¿þ¾î µðÀÚÀÎÀº ¼ÒÇÁÆ®¿þ¾î ¼³°è(Software Design)ÀÌ °¡Àå Áß¿äÇÏ´Ù. ³ªÁß¿¡ ¼³°è¸¦ º¯°æÇÏ·Á°í Çصµ ÀÌ¹Ì ´Ê±â ¶§¹®ÀÌ´Ù. À̸¦ À§Çؼ´Â óÀ½¿¡ ¼³°è¸¦ Àß ÇÏ´ø°¡ ¼³°è ÀÚü¸¦ flexible ÇÏ°Ô ÇØ¾ß ÇÑ´Ù. Design Pattern Àº ¼³°è¸¦ Àß Çϱâ À§ÇÑ ¼³°è ÆÐÅÏÀ» Á¤¸®ÇÑ °ÍÀÌ´Ù. |
= |
°³¿ä
OOP ¼ÒÇÁÆ®¿þ¾î µðÀÚÀÎÀº ¼ÒÇÁÆ®¿þ¾î ¼³°è(Software Design)ÀÌ °¡Àå Áß¿äÇÏ´Ù. ³ªÁß¿¡ ¼³°è¸¦ º¯°æÇÏ·Á°í Çصµ ÀÌ¹Ì ´Ê±â ¶§¹®ÀÌ´Ù. À̸¦ À§Çؼ´Â óÀ½¿¡ ¼³°è¸¦ Àß ÇÏ´ø°¡ ¼³°è ÀÚü¸¦ flexible ÇÏ°Ô ÇØ¾ß ÇÑ´Ù. Design Pattern Àº ¼³°è¸¦ Àß Çϱâ À§ÇÑ ¼³°è ÆÐÅÏÀ» Á¤¸®ÇÑ °ÍÀÌ´Ù.
ÂüÁ¶
[Design Pattern Catalog]
[Patterns Home Page]
Design Pattern Catalog
Creational Patterns
- Abstract Factory: provide an interface for creating families of related or dependent objects without specifying their concrete classes
- Builder: separate the construction of a complex object from its representation so that the same construction process can create different representations
- Factory: Method define an interface for creating an object, but let subclasses decide which class to instantiate. Factory method lets a class defer instantiation to subclasses.
- Prototype: specify the kinds of objects to create using a prototypical instance, and create new objects by copying this prototype.
- Singleton: ensure a class only has one instance, and provide a global point of access to it.
Structural Patterns
- Adapter: convert the interface of a class to a different interface that the client expects. Adapter lets classes work together that couldn't otherwise because of imcompatible interfaces.
- Bridge: decouple an abstraction from implementation so the two can vary independently.
- Composite: compose objects into tree structures to represent part-whole hierarchies. Composites lets clients treat individual objects and compositions of objects uniformly.
- Decorator: Attach additional responsibilities to an object dynamically. Decorators provide a flexible alternative to subclassing for extending functionality. (extend object functionality dynamically)
- Facade: provide a new simpler interface for a set of object interfaces
- Flyweight: use sharing to support a large number of small objects efficiently
- Proxy: provide a surrogate for another object to control access to the object
Behavioral Patterns
- Chain of Responsibility: provide multiple linked request handlers to avoid coupling request sender with receiving object
- Command: encapsulate requests as an object
- Interpreter: translate a language into executable operations
- Iterator: provide a way to sequentially access elements of an aggregate without exposing the underlying representation of the aggregate
- Mediator: define an object that defines how a set of objects interact
- Memento: save an objects internal state so it can be restored later
- Observer: define a ont-to-many dependency between objects so that when one object changes state, all its dependents are notified and ipdated automatically. (define a one to many relationship providing broadcast of an objects state changes to all dependent objects)
- State: allow an object to alter behavior based on object state
- Strategy: define a family of algoritms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it. (define a set of interchangeable algorithms)
- Template Method: define the skeleton of an algorithm in an operation, deferring some steps to subclasses. (i.e. Ada generic)
- Visitor: represent 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.
ºÐ·ù°³¹ß