구체적 클래스에 의존하는 것이 아닌 서로 연관되거나 의존된 객체들의 조합을 만드는 인터페이스를 제공한다. 관련있는 객체들을 일관된 방식으로 생성하는 경우 유용 싱글톤, 팩토리 메서드 패턴을 사용한다. 일관된 방식으로 객체를 생성할 경우 요구사항이 늘어날 수록 팩토리 클래스가 늘어나는 것을 방지해준다. 추상화 된 Door 에서 상속 되어 나오는 벤더 제품을 만들고 있다. 공통기능은 템플릿 메서드로 획일화 시킨다. public abstract class Door { private DoorStatus doorStatus; public Door() { doorStatus = DoorStatus.CLOSED; } public DoorStatus getDoorStatus() { return doorStatus; }..