반응형
복합 패턴은 구조 패턴이므로 오브젝트 그룹의 트리 구조를 생성합니다.
복합 패턴은 객체 그룹을 단일 객체로 취급합니다.
복합 패턴은 하나의 클래스를 사용하여 트리 구조를 나타냅니다.
복합 패턴에서 우리는 클래스를 생성합니다. 그 클래스는 자체 객체 그룹을 포함합니다.
예제
다음 코드는 Employee 클래스를 사용하여 복합 패턴을 보여줍니다.
import java.util.ArrayList;import java.util.List;class Employee { private String name; private String title; private List subordinates; public Employee(String name,String title) { this.name = name; this.title = title; subordinates = new ArrayList(); } public void add(Employee e) { subordinates.add(e); } public void remove(Employee e) { subordinates.remove(e); } public List getSubordinates(){ return subordinates; } public String toString(){ return "Employee :[ Name : "+ name +", dept : "+ title +subordinates +" ]"; } }public class Main { public static void main(String[] args) { Employee CEO = new Employee("John","CEO"); Employee headSales = new Employee("Rob","Sales"); Employee headMarketing = new Employee("Mike","Marketing"); Employee programmer1 = new Employee("Lili","Programmer"); Employee programmer2 = new Employee("Bob","Programmer"); Employee tester1 = new Employee("Jack","Tester"); Employee tester2 = new Employee("Tom","Tester"); CEO.add(headSales); CEO.add(headMarketing); headSales.add(tester1); headSales.add(tester2); headMarketing.add(programmer1); headMarketing.add(programmer2); //print all employees of the organization System.out.println(CEO); for (Employee headEmployee : CEO.getSubordinates()) { System.out.println(headEmployee); for (Employee employee : headEmployee.getSubordinates()) { System.out.println(employee); } } }}
위의 코드는 다음 결과를 출력합니다.
Employee : [Name : John, dept : CEO[Employee : [Name : Rob, dept : Sales]]Employee : [Name : Rob, dept : Sales[Employee : [Name : Jack, dept : Tester]]Employee : [Name : Jack, dept : Tester[]]Employee : [Name : Mike, dept : Marketing[Employee : [Name : Lili, dept : Programmer]]Employee : [Name : Lili, dept : Programmer[]]Employee : [Name : Bob, dept : Programmer[]]
반응형
'프로그래밍 > 자바 디자인 패턴' 카테고리의 다른 글
자바 디자인 패턴 튜토리얼 - 구조 설계 패턴 - 브릿지 패턴 (0) | 2021.04.18 |
---|---|
자바 디자인 패턴 튜토리얼 - 구조 설계 패턴 - 필터 / 기준 패턴 (0) | 2021.04.18 |
자바 디자인 패턴 튜토리얼 - 구조 설계 패턴 - 데코레이터 패턴 (0) | 2021.04.18 |
자바 디자인 패턴 튜토리얼 - 구조 설계 패턴 - 퍼사드 패턴 (0) | 2021.04.18 |
자바 디자인 패턴 튜토리얼 - 구조 설계 패턴 - 프록시 패턴 (0) | 2021.04.18 |