added abstract factory example
This commit is contained in:
		
							
								
								
									
										6
									
								
								src/learn/simple_abstract_factory/AbstractFactory.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/learn/simple_abstract_factory/AbstractFactory.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| package learn.simple_abstract_factory; | ||||
|  | ||||
| public interface AbstractFactory { | ||||
|     public AbstractProductA createProductA(); | ||||
|     public AbstractProductB createProductB(); | ||||
| } | ||||
							
								
								
									
										4
									
								
								src/learn/simple_abstract_factory/AbstractProductA.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/learn/simple_abstract_factory/AbstractProductA.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| package learn.simple_abstract_factory; | ||||
|  | ||||
| public interface AbstractProductA { | ||||
| } | ||||
							
								
								
									
										4
									
								
								src/learn/simple_abstract_factory/AbstractProductB.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								src/learn/simple_abstract_factory/AbstractProductB.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| package learn.simple_abstract_factory; | ||||
|  | ||||
| public interface AbstractProductB { | ||||
| } | ||||
							
								
								
									
										13
									
								
								src/learn/simple_abstract_factory/ConcreteFactory1.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/learn/simple_abstract_factory/ConcreteFactory1.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| package learn.simple_abstract_factory; | ||||
|  | ||||
| public class ConcreteFactory1 implements AbstractFactory { | ||||
|     @Override | ||||
|     public AbstractProductA createProductA() { | ||||
|         return new ProductA1(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public AbstractProductB createProductB() { | ||||
|         return new ProductB1(); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										13
									
								
								src/learn/simple_abstract_factory/ConcreteFactory2.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								src/learn/simple_abstract_factory/ConcreteFactory2.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| package learn.simple_abstract_factory; | ||||
|  | ||||
| public class ConcreteFactory2 implements AbstractFactory { | ||||
|     @Override | ||||
|     public AbstractProductA createProductA() { | ||||
|         return new ProductA2(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public AbstractProductB createProductB() { | ||||
|         return new ProductB2(); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										16
									
								
								src/learn/simple_abstract_factory/Main.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								src/learn/simple_abstract_factory/Main.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| package learn.simple_abstract_factory; | ||||
|  | ||||
| public class Main { | ||||
|     public static void main(String[] args) { | ||||
|         Client client1 = new Client(new ConcreteFactory1()); | ||||
|         Client client2 = new Client(new ConcreteFactory1()); | ||||
|  | ||||
|         client1.setup(); | ||||
|  | ||||
|         client2.setAbstractFactory(new ConcreteFactory2()); | ||||
|         client2.setup(); | ||||
|  | ||||
|         System.out.println(client1); | ||||
|         System.out.println(client2); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										8
									
								
								src/learn/simple_abstract_factory/ProductA1.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/learn/simple_abstract_factory/ProductA1.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| package learn.simple_abstract_factory; | ||||
|  | ||||
| public class ProductA1 implements AbstractProductA { | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "ProductA1"; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										8
									
								
								src/learn/simple_abstract_factory/ProductA2.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/learn/simple_abstract_factory/ProductA2.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| package learn.simple_abstract_factory; | ||||
|  | ||||
| public class ProductA2 implements AbstractProductA { | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "ProductA2"; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										8
									
								
								src/learn/simple_abstract_factory/ProductB1.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/learn/simple_abstract_factory/ProductB1.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| package learn.simple_abstract_factory; | ||||
|  | ||||
| public class ProductB1 implements AbstractProductB { | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "ProductB1"; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										8
									
								
								src/learn/simple_abstract_factory/ProductB2.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/learn/simple_abstract_factory/ProductB2.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| package learn.simple_abstract_factory; | ||||
|  | ||||
| public class ProductB2 implements AbstractProductB { | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "ProductB2"; | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user