디자인 패턴/구조 3

복합체 패턴

여러 객체들을 하나로 관리하기 위한 패턴. 예를 들자면 전화번호부 목록. 전체 조회를 해보려면 하나로 관리하는게 편하다. 거기에는 분류에 따라서 대학교 친구, 고등학교 친구가 있을 텐데, 그건 Friend 클래스나 인터페이스를 상속받아 하면 된다. 그 다음 복합체 클래스의 멤버 컬렉션(리스트 등)에 추가 해 준뒤, 그거를 for로 읽어주면 된다. 다음 코드는 도형 전체를 관리하는 코드이다. public interface Shape { public void draw(String fillColor); } public class Circle implements Shape { @Override public void draw(String fillcolor) { System.out.println("Drawing C..

적응자 패턴

객체지향은 이미 구현되어 있는 클래스를 이용하여 다른 기능을 만들기 위해 상속이라는 기능이 있지만, 이는 객체지향에서 금기시 되어지고 있다. 이유는 다형성을 위배하고, 불필요한 인터페이스를 전파하며, 클래스 계층관계를 이해하는데 혼돈을 준다. 그 단점을 파훼하기 위한 패턴이 적응자 패턴이다. 적응자 패턴은 어떤 기능을 가진 클래스가 필요한 기능이 있는 클래스의 객체를 가지고 있는 패턴이다. class Stack{ private Vector vector = new Vector(); public void push(T t){ vector.add(t); } public T pop(){ if(vector.size() == 0) return null; T t = vector.get(vector.size() - 1)..