Skip to content

Commit 2149222

Browse files
committed
readme
1 parent 1e07ad8 commit 2149222

File tree

1 file changed

+63
-3
lines changed

1 file changed

+63
-3
lines changed

README.md

Lines changed: 63 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,64 @@
1-
hello-design-pattern
2-
====================
1+
hello-design-pattern
2+
====================
3+
4+
Hello world use all 23 kinds of GoF design patterns.
35

4-
Hello world use all 23 kinds of GoF design patterns.
6+
```java
7+
public class Main {
8+
9+
public static void main(String[] args) throws InstantiationException, IllegalAccessException {
10+
11+
System.out.println("We are creational patterns!");
12+
13+
SplitHelloWorldFactory splitHelloWorldFactory = AbstractFactory.select(AbstractFactory.Type.DesignPattern);
14+
HelloWorld abstractFactoryHelloWorld = new SplitHelloWorld(splitHelloWorldFactory.createHelloWorldSlogan(),
15+
splitHelloWorldFactory.createHelloWorldTarget());
16+
System.out.println(abstractFactoryHelloWorld.helloWorld());
17+
18+
HelloWorld builderHelloWorld = HelloWorldBuilder.builder()
19+
.slogan("Hello")
20+
.target("Builder").getHelloWorld();
21+
System.out.println(builderHelloWorld.helloWorld());
22+
23+
/**
24+
* Difference between "abstract factory" and "factory method" is the abstracting point:
25+
* 1. Abstracting point of abstract factory is factory.
26+
* 2. Abstracting point of factory method is generated object.
27+
*/
28+
FactoryMethodHelloWorldFactory factoryMethodHelloWorldFactory = new FactoryMethodHelloWorldFactory();
29+
HelloWorld factoryMethodHelloWorld = factoryMethodHelloWorldFactory.createHelloWorld();
30+
System.out.println(factoryMethodHelloWorld.helloWorld());
31+
32+
HelloWorld prototypeHelloWorld = HelloWorldPrototype.PROTOTYPE.clone();
33+
System.out.println(prototypeHelloWorld.helloWorld());
34+
35+
HelloWorld singletonHelloWorld = HelloWorldSingleton.instance();
36+
System.out.println(singletonHelloWorld.helloWorld());
37+
38+
System.out.println("We are structural patterns!");
39+
40+
HelloWorld adapterHelloWorld = new HelloWorldAdapter(new HelloAdapterDesignPattern());
41+
System.out.println(adapterHelloWorld.helloWorld());
42+
43+
HelloWorld bridgeHelloWorld = new HelloWorldBridge(new DesignPatternWorldImpl());
44+
//leave bridgeHelloWorld' output to compositeHelloWorld
45+
46+
HelloWorld compositeHelloWorld = new CompositeHelloWorld(bridgeHelloWorld, new CompositeHelloWorld.DefaultHelloWorld());
47+
System.out.println(compositeHelloWorld.helloWorld());
48+
49+
HelloWorldDecorator helloWorldDecorator = new HelloWorldDecorator(new HelloWorldDecorator.DefaultHelloWorld());
50+
System.out.println(helloWorldDecorator.helloDecorator());
51+
52+
HelloWorld facadeHelloWorld = HelloWorldFacade.instance().facadeHelloWorld();
53+
System.out.println(facadeHelloWorld.helloWorld());
54+
55+
HelloWorld flyWeightHelloWorld = HelloWorldFlyWeightFactory.instance().createHelloWorld("Hello Flyweight!");
56+
System.out.println(flyWeightHelloWorld.helloWorld());
57+
58+
HelloWorldProxy helloWorldProxy = new HelloWorldProxy(new HelloWorldProxy.DefaultHelloWorld());
59+
System.out.println(helloWorldProxy.helloWorld());
60+
61+
System.out.println("We are behavioral patterns!");
62+
}
63+
}
64+
```

0 commit comments

Comments
 (0)