1. .
2. .
3. .
4. .
5. .
1. (. software design patterns) . , . '- ', , .
2.
70- (. Christopher Alexander) . , .
1987 (. Kent Beck) (. Ward Cunningham) Smalltalk.
1988 (. Erich Gamma) .
19891991 (. James Coplien) C++ 1991 Advanced C++ Idioms.
, г (. Richard Helm), (. Ralph Johnson) (. John Vlissides) Design Patterns Elements of Reusable Object-Oriented Software. 23 . (. Gang of Four - GoF). .
1. | (Abstract Factory) (Builder) (Singleton) (Prototype) (Factory Method) | |
2. | (Adapter) (Decorator) (Proxy) (Composite) ̳ (Bridge) (Flyweight) (Facade) | |
3. | ³ (Visitor) (Interpreter) (Iterator) (Command) (Chain of Responsibility) (Mediator) (Observer) (State) (Strategy) (Memento) (Template Method) |
4. | |||
-- | |||
-- | |||
볺- | |||
- | |||
- | |||
Active Record | . |
|
|
(. Software architectural patterns) , (. good practices) . . , .
, . ', () .
3.
, (. Creational patterns) , . , '.
, , , , , ', '.
ֳ , ', .
, , , .
, ' , .
, , , , .
', .
(. Abstract Factory) , .
' ', .
:
- , , ';
- ' ' ;
- ';
- ', , .
UML ,
- AbstractFactory :
- , '-;
- ConcreteFactory :
- , '-;
- AbstractProduct :
- '-;
- ConcreteProduct :
- '-, ;
- AbstractProduct;
- Client 볺:
- , AbstractFactory AbstractProduct.
³
|
|
- ConcreteFactory. ' , . ' 볺 ;
- AbstractFactory ' ConcreteFactory.
3.2. ( )
(. Builder) , .
³ ' , .
:
- ' , ' ;
- ', .
UML ,
- Builder :
- ' Product;
- ConcreteBuilder :
- Builder;
- , , ;
- ;
- Director :
- ', Builder;
- Product :
- '. ConcreteBuilder ;
- , , .
³
- 볺 '- Director '- Builder;
- , ;
- ;
- 볺 .
UML , 볺
( )
(. Singleton) , .
, , .
, . , , . .
, , , ? ', .
, , , . .
:
- , 볺;
- , 볺 .
ij ,
- Singleton :
- Instance, 볺 . Instance ;
- .
³
볺 ' Singleton Instance.