theory/디자인패턴 6

GoF의 디자인 패턴. 생성패턴 5. 싱글턴

- 지난 글에 이어 생성패턴을 다뤄본다. 추상 팩토리 (Abstract Factory) 빌더 (Builder) 팩토리 메서드 (Factory Methods) 프로토타입 (Prototype) 싱글턴 (Singleton) 싱글턴 (Singleton) - 의도 단 한 개의 클래스 인스턴스를 갖도록 보장하고, 이에 대한 전역적인 접근점을 제공한다. - 동기 JDBC connection 관리하는 connection pool 등은 객체가 여러 개 생성되면 설정 값이 변경될 위험이 있다. 클래스 자신이 자기의 유일한 인스턴스로 접근하는 방법을 자체적으로 관리하도록 한다. - 활용성 클래스의 인스턴스가 단 하나임을 보장하고, 잘 정의된 접근점으로 모든 사용자가 접근할 수 있도록 해야 할 때 유일한 인스턴스가 서브클래싱..

GoF의 디자인 패턴. 생성패턴 4. 프로토타입

- 지난 글에 이어 생성패턴을 다뤄본다. 추상 팩토리 (Abstract Factory) 빌더 (Builder) 팩토리 메서드 (Factory Methods) 프로토타입 (Prototype) 싱글턴 (Singleton) 프로토타입 (Prototype) - 의도 생성할 객체의 원형(prototpye)을 만들고, 이렇게 만든 견본을 복사하여 새로운 객체 생성 - 동기 원형이 되는 클래스를 생성하고, 해당 클래스의 객체를 복제하여 새로운 객체를 만들어나가는 패턴이다. 클래스를 동일하게 유지하면서 내부의 값이나 구조를 바꿔가며 새로운 객체를 만들 수 있기 때문에 클래스의 개수를 줄일 수 있다. - 활용성 제품의 생성, 복합, 표현 방법에 독립적인 제품을 만들고자 할 때 쓰인다. 인스턴스화할 클래스를 런타임에 지정..

GoF의 디자인 패턴. 생성패턴 3. 팩토리 메서드

- 지난 글에 이어 생성패턴을 다뤄본다. 추상 팩토리 (Abstract Factory) 빌더 (Builder) 팩토리 메서드 (Factory Methods) 프로토타입 (Prototype) 싱글턴 (Singleton) 팩토리 메서드 (Factory Methods) - 의도 객체를 생성하기 위해 인터페이스를 정의하지만, 어떤 클래스의 인스턴스를 생성하지에 대한 결정은 서브클래스가 내리도록 한다. - 동기 객체를 "제조하는" 방법을 아는 연산을 분리한다. - 활용성 어떤 클래스가 자신이 생성해야 하는 객체의 클래스를 예측할 수 없을 때 생성할 객체를 기술하는 책임을 자신의 서브클래스가 지정했으면 할 때 객체 생성의 책임을 몇 개의 보조 서브클래스 중 하나에 위임, 어떤 서브클래스가 위임자인지에 대한 정보를 ..

GoF의 디자인 패턴. 생성패턴 2.빌더

- 지난 글에 이어 생성패턴을 다뤄본다. 추상 팩토리 (Abstract Factory) 빌더 (Builder) 팩토리 메서드 (Factory Methods) 프로토타입 (Prototype) 싱글턴 (Singleton) 빌더 (Builder) - 의도 복잡한 객체를 생성하는 클래스와 표현하는 클래스를 분리하여, 서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공한다. - 동기 생성과 표현의 분리를 통한 책임 분리 - 활용성 복합 객체의 생성 알고리즘이 이른 합성하는 요소 객체들이 무엇인지 이들의 조립 방법에 독립적일 때 합성할 객체들의 표현이 서로 다르더라도 생성 절차에서 이를 지원해야 할 때 - 구조 - 참여자 Builder: Product 객체의 일부 요소를 생성하기 위한 추상 인터페이스 정..

GoF의 디자인 패턴. 생성패턴 1.추상 팩토리

생성패턴(creational pattern) 인스턴스를 만드는 절차를 추상화하는 패턴 특징 1) 생성패턴은 시스템이 어떤 구체 클래스를 사용하는지에 대한 정보를 캡슐화한다. 특징 2) 생성패턴은 이들 클래스의 인스턴스들이 어떻게 만들고 어떻게 서로 맞붙는지에 대한 부분을 완전히 가려준다. 예시) java toString() 메소드처럼 목적은 같지만 생성한 클래스에 따라 결과물이 다르게 생성되는 메소드가 있다. -> 결론적으로 생성에 대한 유연성을 확보할 수 있다. - 생성패턴은 5개이고, 추상 팩토리부터 다뤄보도록 한다. 추상 팩토리 (Abstract Factory) 빌더 (Builder) 팩토리 메서드 (Factory Methods) 프로토타입 (Prototype) 싱글턴 (Singleton) 추상 팩..

GoF의 디자인 패턴. 서론

- 디자인 패턴 특정한 전후 관계에서 일반적 설계 문제를 해결하기 위해 상호교류하는 수정 가능한 객체와 클래스들에 대한 설명 "설계를 더 융통성있고, 모듈화하며, 재사용 가능하고, 이해하기 쉬운 것으로 만들 수 있는 통찰력" 이런 객체지향의 장점을 극대화 하는 것이 디자인 패턴이다. 각 디자인 패턴은 기존 환경 내에서 반복적으로 일어나는 문제들을 설명한 후, 그 문제들에 대한 해법의 핵심을 설명한다. 똑같은 방법으로 두 번 하지 않고, 이 해법을 100만 번 이상 재사용할 수 있다. - GoF(Gang of Fout) 에리히 감마(Erich Gamma), 리차드 헬름(Richard Helm), 랄프 존슨(Ralph Johnson), 존 블리시디스(John Vissides) 소프트웨어 개발 영역에서 디자인..