디자인패턴
-
[Design Pattern] 추상 팩토리(Abstract factory) 패턴CSE/Design Pattern 2015. 6. 13. 10:27
Pattern #4 추상 팩토리 패턴 구체적인 클래스의 명시없이 관련 객체의 패밀리를 생성하기 위한 인터페이스를 제공하기 위하여 사용. 목적 - 객체생성을 추상화하여 이를 사용하는 모듈과 독립적으로 인터페이스를 정의하는데 있다. - 인스턴스를 생성하기 위한 프레임워크와 실제로 인스턴스를 생성하는 클래스를 분리하여 생각 결과 - 패밀리에 있는 각 클래스의 팩토리 메소드를 가진 클래스에서 패밀리를 생성 동기 당신은 상용 에디터 프로그램의 사용자 인터페이스 부분의 개발을 맡았다. 시장을 넓히기 위하여, 이 프로그램은 MS-Windows GUI환경과 리눅스의 Motif GUI환경을 지원하여야 한다. 하나의 프로그램 소스코드에서 두 가지 GUI를 지원하려면?? 123456789101112131415161718/*..
-
[Design Pattern] 프로토타입(Prototype) 패턴 - 디자인 패턴CSE/Design Pattern 2015. 6. 13. 10:26
Pattern #3 프로토타입 패턴 런타임에 그 타입이 결정되는 거의 동일한 객체의 집합을 만들려고 할 때 적용. 가정 - 프로토타입이 될 인스턴스르 이미 알고 있어야 한다. - 새로운 인스턴스가 필요할 때 언제든지 이를 클론화 인스턴스 만드는 법 - New Something(); - MyPart anotherMyPart = MyPartPrototype.clone(); 동기 A회사는 자사의 주력 제품인 "보고서 관리 Class Library"의 upgrade 프로젝트를 결정했으며, 그 개발 팀의 시스템 설계자로 당신이 선발되었다. upgrade는 주로 고객(library를 이용하는 개발자)의 불만사항을 해결하는데 초점이 맞추어져 있다. - 보고서 관리 Class Library의 현재 상황 개발자는 실제..
-
[Design Pattern] 싱글톤(Singleton) 패턴 - 디자인 패턴CSE/Design Pattern 2015. 6. 13. 10:25
Pattern #2 싱글톤 패턴 어떤 클래스, S의 인스턴스를 단 하나만 만들고 싶을 때. 어플리케이션 전체에 꼭 하나만 필요한 경우. 패턴의 핵심 - S의 생성자를 private으로 만들고, S 안에 private 정적 속성을 정의한다. 이를 접근하는 public 함수를 제공한다. - 싱글톤은 오직 한 개의 객체만 존재하려는 목적이 있어 더 이상 만들려는 생성자의 호출을 안전하게 막아야 한다. 사례#1 - 보고서 문제 연구실의 실험 결과 평가 어플리케이션 - 정확히 하나의 experiment 객체만이 실시간에 존재함을 보장해야 한다. 12345678910111213141516package singleton; public class Client { public Client() { super(); } pu..
-
[Design Pattern] 팩토리(factory) 패턴 - 디자인 패턴CSE/Design Pattern 2015. 6. 13. 10:24
Pattern #1 팩토리 패턴 생성자만으로는 개별 객체 생성이 적합하지 않은 경우 사용 목적 - 객체생성을 위한 인터페이스를 정의하는데 있다. - 어떤 클래스의 인스턴스를 생성할지에 대한 결정은 서브클래스에서 이루어지도록 인스턴스의 책임을 미룬다. 결과 - 다양한 형태의 객체를 반환하는 융통성을 갖게 된다. 1. 팩토리 패턴을 사용하는 이유 생성자 사용할 때의 문제 12345678910Duck duck; if (picnic) { duck = new MallardDuck();} else if (hunting) { duck = DecoyDuck();} else if (inBathTub) { duck = RubberDuck();} cs 새로운 타입이 추가될 때 문제가 된다. -> 계속해서 else if 구문..