Composite Pattern

이한수·2022년 6월 30일
0

디자인 패턴

목록 보기
4/5

Composite Pattern

복합 객체나 단일 객체를 동일하게 취급하는 것을 목적으로 한다.

해당 패턴의 의도는 트리 구조로 작성하여 , 전체-부분 관계를 표현하는 것.

해당 패턴의 대표적 예시인 Directory - File 관계를 이용하여 설정해보겠다.

public interface Component{
	void print();
}
//Directory.class
public class Directory implements Component{
	
    private List<Component> comp = new ArrayList<>();
    
    @Override
    pulbic void print(){
    	for(Component component : comp){
        		component.print();
        }
    }
    
    public void save(Component component){
    	System.out.println("Component를 저장");
        comp.add(component);
    }
    
    public void remove(Component component){
    	System.out.println("Component를 삭제");
        comp.remove(component);
    }
}
//File.class
public class File implements Component{
	@Override
    public void print(){
    	System.out.println("File");
    }
}
//client
//file
File file1 = new File();
File file2 = new File();
File file3 = new File();
File file4 = new File();


//Directory
Directory directory1 = new Directory();
Directory directory2 = new Directory();


directory2.save(file3);
directory2.save(file4);

directory1.save(directory2);
directory1.save(file2);
directory1.save(file1);

directory가 폴더 역할을 하고 , file을 담는다.

//만든 구조

directory1 폴더의 내부 -> file1 , file2 , directory2
directory2 폴더의 내부 -> file3 , file4

참고 :
https://mygumi.tistory.com/343
https://ko.wikipedia.org/wiki/%EC%BB%B4%ED%8F%AC%EC%A7%80%ED%8A%B8_%ED%8C%A8%ED%84%B4

profile
성실하게

0개의 댓글