DesignPatterns ÆäÀÌÁöÀÇ ¼Ò½º º¸±â
³É³¯À§Å°
ÆäÀÌÁö¸ñ·Ï
º¯°æ³»¿ª
ȯ°æ¼³Á¤
¸µÅ©
·Î±×ÀÎ
°Ë»ö:
Home
¼öÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù: DesignPatterns ´Â Àбâ Àü¿ë ÆäÀÌÁöÀÔ´Ï´Ù.
== °³¿ä == OOP ¼ÒÇÁÆ®¿þ¾î µðÀÚÀÎÀº ¼ÒÇÁÆ®¿þ¾î ¼³°è(Software Design)ÀÌ °¡Àå Áß¿äÇÏ´Ù. ³ªÁß¿¡ ¼³°è¸¦ º¯°æÇÏ·Á°í Çصµ ÀÌ¹Ì ´Ê±â ¶§¹®ÀÌ´Ù. À̸¦ À§Çؼ´Â óÀ½¿¡ ¼³°è¸¦ Àß ÇÏ´ø°¡ ¼³°è ÀÚü¸¦ flexible ÇÏ°Ô ÇØ¾ß ÇÑ´Ù. Design Pattern Àº ¼³°è¸¦ Àß Çϱâ À§ÇÑ ¼³°è ÆÐÅÏÀ» Á¤¸®ÇÑ °ÍÀÌ´Ù. == ÂüÁ¶ == [http://wwwstud.ira.uka.de/~s_platze/orbital/Orbital-doc/api/Patterns/Design/ Design Pattern Catalog] [http://hillside.net/patterns/ 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. ---- [[ºÐ·ù°³¹ß]]
DesignPatterns
ÆäÀÌÁö·Î µ¹¾Æ°¡±â |
´Ù¸¥ ¼öÁ¤º» º¸±â