디자인 패턴 2

④ 디자인 패턴(Design Pattern) - Composite

Composite 패턴은 마치 나무와 같다. 바로 트리구조라는것. 자꾸 여기저기서 트리구조라고 하기 때문에 더 헷갈리는것 같기도 하다. 그렇지만 뭐 해보겠다. 일단 부품이 있다. Component라고 하자. 그 부품 종류에는 계속 부품을 꽂을 수 있는 Composite, 그리고 더이상 부품을 꽂을 수 없어 끝나는 Leaf 부품이 있다. (트리구조라 보통 이렇게 예를 잡는듯 하다.) 즉, Composite을 이용한다면 계속 부품을 꽂아서 객체를 만들어나갈수 있고, Leaf를 이용한다면 거기는 막다른 부품(?)이다. 일단 다음과 같은 기본 부품을 하나 만들어주자. Componentpublic interface Component { public void operation(); } 이제 이를 상속해서 실제 Le..

⑦ 디자인 패턴(Design Pattern) - Factory

팩토리 디자인 패턴은 자바에서 참 많이 구경할수 있는 대표적인 패턴이다. 팩토리는 내부적으로 상품을 하나 찍어내어 전달해주는 역할을 한다. 보통, new를 통해 인스턴스를 생성하는 경우가 대부분이지만, 팩토리에서는 Factory 혹은 이를 구현한 concrete Factory에서 인스턴스를 넘겨주게 된다. 대표적인 팩토리 패턴을 따르는 애들은 사실 Calendar이다. getInstance()를 통해서 객체를 생성하게 되는데 (보통은 create()메서드로 관습화 되어있는데, 칼렌더에서의 getInstance()는 너무 자주쓰다보니 이게 대체로 싱글톤 패턴에서 쓰이는 메서드인것과 혼동이 올때가 있다.) 이는 계속 칼렌다를 만들어 찍어내서 보내준다. new를 쓰는 방법과 다른점은, 추상클래스나 인터페이스를..