added composite example
This commit is contained in:
		
							
								
								
									
										5
									
								
								src/learn/simple_composite/Component.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								src/learn/simple_composite/Component.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| package learn.simple_composite; | ||||
|  | ||||
| public interface Component { | ||||
|     void operation(); | ||||
| } | ||||
							
								
								
									
										27
									
								
								src/learn/simple_composite/Composite.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								src/learn/simple_composite/Composite.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| package learn.simple_composite; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
|  | ||||
| public class Composite implements Component { | ||||
|     private List<Component> children = new ArrayList<>(); | ||||
|  | ||||
|     @Override | ||||
|     public void operation() { | ||||
|         for (Component component : children) { | ||||
|             component.operation(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void add(Component component) { | ||||
|         children.add(component); | ||||
|     } | ||||
|  | ||||
|     public void remove(Component component) { | ||||
|         children.remove(component); | ||||
|     } | ||||
|  | ||||
|     public Component getChild(int index) { | ||||
|         return children.get(index); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										8
									
								
								src/learn/simple_composite/Leaf.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/learn/simple_composite/Leaf.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| package learn.simple_composite; | ||||
|  | ||||
| public class Leaf implements Component { | ||||
|     @Override | ||||
|     public void operation() { | ||||
|         System.out.println("Leaf operation" + this); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										18
									
								
								src/learn/simple_composite/Main.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								src/learn/simple_composite/Main.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| package learn.simple_composite; | ||||
|  | ||||
| public class Main { | ||||
|     public static void main(String[] args) { | ||||
|         Composite root = new Composite(); | ||||
|         Composite node1 = new Composite(); | ||||
|         Composite node2 = new Composite(); | ||||
|         Leaf l1 = new Leaf(); | ||||
|         Leaf l2 = new Leaf(); | ||||
|  | ||||
|         root.add(node1); | ||||
|         node1.add(node2); | ||||
|         node2.add(l1); | ||||
|         node2.add(l2); | ||||
|  | ||||
|         root.operation(); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user