@@ -10,16 +10,20 @@ public class Main {
10
10
11
11
System . out. println(" We are creational patterns!" );
12
12
13
- SplitHelloWorldFactory splitHelloWorldFactory = AbstractFactory . select(AbstractFactory . Type . DesignPattern );
14
- HelloWorld abstractFactoryHelloWorld = new SplitHelloWorld (splitHelloWorldFactory. createHelloWorldSlogan(),
15
- splitHelloWorldFactory. createHelloWorldTarget());
13
+ System . out. println(" 1. Abstract Factory: " );
14
+
15
+ SplitHelloWorldFactory abstractFactory = AbstractFactory . select(AbstractFactory . Type . DesignPattern );
16
+ HelloWorld abstractFactoryHelloWorld = new SplitHelloWorld (abstractFactory. createHelloWorldInterjection(),
17
+ abstractFactory. createHelloWorldObject());
16
18
System . out. println(abstractFactoryHelloWorld. helloWorld());
17
19
20
+ System . out. println(" 2. Builder: " );
18
21
HelloWorld builderHelloWorld = HelloWorldBuilder . builder()
19
- .slogan (" Hello" )
20
- .target (" Builder" ). getHelloWorld();
22
+ .interjection (" Hello" )
23
+ .object (" Builder" ). getHelloWorld();
21
24
System . out. println(builderHelloWorld. helloWorld());
22
25
26
+ System . out. println(" 3. Factory Method: " );
23
27
/**
24
28
* Difference between "abstract factory" and "factory method" is the abstracting point:
25
29
* 1. Abstracting point of abstract factory is factory.
@@ -29,36 +33,105 @@ public class Main {
29
33
HelloWorld factoryMethodHelloWorld = factoryMethodHelloWorldFactory. createHelloWorld();
30
34
System . out. println(factoryMethodHelloWorld. helloWorld());
31
35
36
+ System . out. println(" 4. Prototype: " );
32
37
HelloWorld prototypeHelloWorld = HelloWorldPrototype . PROTOTYPE. clone();
33
38
System . out. println(prototypeHelloWorld. helloWorld());
34
39
40
+ System . out. println(" 5. Singleton: " );
35
41
HelloWorld singletonHelloWorld = HelloWorldSingleton . instance();
36
42
System . out. println(singletonHelloWorld. helloWorld());
37
43
44
+ System . out. println(" ====================================" );
38
45
System . out. println(" We are structural patterns!" );
39
46
47
+ System . out. println(" 6. Adapter: " );
40
48
HelloWorld adapterHelloWorld = new HelloWorldAdapter (new HelloAdapterDesignPattern ());
41
49
System . out. println(adapterHelloWorld. helloWorld());
42
50
51
+ System . out. println(" 7. Bridge: " );
43
52
HelloWorld bridgeHelloWorld = new HelloWorldBridge (new DesignPatternWorldImpl ());
44
53
// leave bridgeHelloWorld' output to compositeHelloWorld
45
54
55
+ System . out. println(" 8. Composite: " );
46
56
HelloWorld compositeHelloWorld = new CompositeHelloWorld (bridgeHelloWorld, new CompositeHelloWorld .DefaultHelloWorld ());
47
57
System . out. println(compositeHelloWorld. helloWorld());
48
58
49
- HelloWorldDecorator helloWorldDecorator = new HelloWorldDecorator (new HelloWorldDecorator .DefaultHelloWorld ());
50
- System . out. println(helloWorldDecorator. helloDecorator());
59
+ System . out. println(" 9. Decorator: " );
60
+ HelloWorldDecorator decoratorHelloWorld = new HelloWorldDecorator (new HelloWorldDecorator .DefaultHelloWorld ());
61
+ System . out. println(decoratorHelloWorld. helloDecorator());
51
62
63
+ System . out. println(" 10. Facade: " );
52
64
HelloWorld facadeHelloWorld = HelloWorldFacade . instance(). facadeHelloWorld();
53
65
System . out. println(facadeHelloWorld. helloWorld());
54
66
67
+ System . out. println(" 11. Flyweight: " );
55
68
HelloWorld flyWeightHelloWorld = HelloWorldFlyWeightFactory . instance(). createHelloWorld(" Hello Flyweight!" );
56
69
System . out. println(flyWeightHelloWorld. helloWorld());
57
70
58
- HelloWorldProxy helloWorldProxy = new HelloWorldProxy (new HelloWorldProxy .DefaultHelloWorld ());
59
- System . out. println(helloWorldProxy. helloWorld());
71
+ System . out. println(" 12. Proxy: " );
72
+ HelloWorld proxyHelloWorld = new HelloWorldProxy (new HelloWorldProxy .DefaultHelloWorld ());
73
+ System . out. println(proxyHelloWorld. helloWorld());
60
74
75
+ System . out. println(" ====================================" );
61
76
System . out. println(" We are behavioral patterns!" );
77
+
78
+ System . out. println(" 13. Chain of Responsibility: " );
79
+ HelloWorldHandler helloWorldChainOfResponsibility = new HelloWorldInterjectionHandler (). setNext(new HelloWorldObjectHandler ());
80
+ System . out. println(helloWorldChainOfResponsibility. helloWorld());
81
+
82
+ System . out. println(" 14. Command: " );
83
+ Command helloWorldCommand = new HelloWorldPrintCommand ();
84
+ helloWorldCommand. execute();
85
+
86
+ System . out. println(" 15. Interpreter: " );
87
+ HelloWorldInterpreter helloWorldInterpreter = new HelloWorldInterpreter ();
88
+ helloWorldInterpreter. interpret(" println('Hello Interpreter!')" );
89
+
90
+ System . out. println(" 16. Iterator: " );
91
+ HelloWorldCharacterIterator helloWorldCharacterIterator = new HelloWorldCharacterIterator (" Hello Iterator!" . toCharArray());
92
+ while (helloWorldCharacterIterator. hasNext()) {
93
+ System . out. print(helloWorldCharacterIterator. next());
94
+ }
95
+ System . out. println();
96
+
97
+ System . out. println(" 17. Mediator: " );
98
+ HelloWorldInterjection helloWorldInterjection = new HelloWorldInterjection ();
99
+ HelloWorldObject helloWorldObject = new HelloWorldObject ();
100
+ HelloWorldMediator helloWorldMediator = new HelloWorldMediator (helloWorldInterjection, helloWorldObject);
101
+ helloWorldInterjection. setHelloWorldMediator(helloWorldMediator);
102
+ helloWorldObject. setHelloWorldMediator(helloWorldMediator);
103
+ System . out. println(helloWorldObject. helloWorld());
104
+
105
+ System . out. println(" 18. Memento: " );
106
+ HelloWorldMementoOriginator helloWorldMementoOriginator = new HelloWorldMementoOriginator ();
107
+ HelloWorldMementoOriginator . Memento memento = helloWorldMementoOriginator. set(" Hello Memento!" ). saveToMemento();
108
+ helloWorldMementoOriginator. set(" Hello Whatever!" );
109
+ helloWorldMementoOriginator. restoreFromMemento(memento);
110
+ System . out. println(helloWorldMementoOriginator. helloWorld());
111
+
112
+ System . out. println(" 19. Observer: " );
113
+ Subject subject = new Subject (). attach(new HelloWorldObserver ());
114
+ subject. notifyObservers();
115
+
116
+ System . out. println(" 20. State: " );
117
+ HelloWorldStateContext helloWorldStateContext = new HelloWorldStateContext ();
118
+ HelloWorld stateHelloWorld = helloWorldStateContext. appendWord(" Hello" ). appendWord(" State" );
119
+ System . out. println(stateHelloWorld. helloWorld());
120
+
121
+ System . out. println(" 21. Strategy: " );
122
+ HelloWorldStrategyContext helloWorldStrategyContext = new HelloWorldStrategyContext (new DesignPatternHelloWorldStrategy ());
123
+ System . out. println(helloWorldStrategyContext. helloWorld());
124
+
125
+ System . out. println(" 22. Template Method: " );
126
+ HelloWorld templateMethodHelloWorld = new TemplateMethodHelloWorld ();
127
+ System . out. println(templateMethodHelloWorld. helloWorld());
128
+
129
+ System . out. println(" 23. Visitor: " );
130
+ HelloWorldCharacterElements helloWorldCharacterElements = new HelloWorldCharacterElements (" Hello Visitor!" . toCharArray());
131
+ HelloWorldCharacterVisitor helloWorldCharacterVisitor = new HelloWorldCharacterVisitor ();
132
+ helloWorldCharacterElements. accept(helloWorldCharacterVisitor);
133
+ System . out. println(helloWorldCharacterVisitor. helloWorld());
134
+
62
135
}
63
136
}
64
137
```
0 commit comments