본문 바로가기

Design Pattern18

[Design Pattern] 싱글턴 패턴(Single Pattern)에 대해 알아보자 Definition 싱글턴 패턴(Singleton Pattern)은 클래스 인스턴스를 하나만 만들고, 그 인스턴스로의 전역 접근을 제공한다. Situation - 단일 객체에 대한 제어된 액세스가 필요할 때 - 프로그램의 클래스에서 모든 클라이언트가 사용할 수 있는 단일 인스턴스만 있어야 하는 경우. 예를 들어, 프로그램의 다른 부분에서 공유하는 단일 데이터베이스 객체 - 전역 변수를 더 엄격하게 제어해야 하는 경우 Structure - Singleton 클래스는 자체 클래스의 동일한 인스턴스를 반환하는 정적 메서드 getInstance를 선언한다. - Singleton의 생성자는 클라이언트 코드에서로부터 숨겨져야 한다. getInstance 메서드를 호출하는 것이 Singleton 객체를 가져오는 유일.. 2022. 6. 26.
[Design Pattern] 추상 팩토리 패턴(Abstract Factory Pattern)에 대해 알아보자 Definition 추상 팩토리 패턴(Abstract Factory Pattern)은 구상 클래스에 의존하지 않고도 서로 연관되거나 의존적인 객체로 이루어진 제품군을 생산하는 인터페이스를 제공한다. 구상 클래스는 서브클래스에서 만든다. - Creational Patterns Situation - 객체 생성은 이를 활용하는 시스템과 독립적이어야 한다. - 시스템은 여러 객체 패밀리를 사용할 수 있어야 한다. - Concreate 클래스는 client에서 분리되어야 한다. - 시스템은 제품이 생성, 구성, 및 표현되는 방식과 독립적이어야 한다. - 클래스는 생성해야 하는 객체의 클래스를 예측할 수 없다. - 시스템은 제품들의 패밀리 세트 중 하나만 사용해야 한다. - 관련 제품 객체 패밀리는 함께 사용되도록.. 2022. 6. 24.
[Design Pattern] 팩토리 메소드 패턴(Factory Method Pattern)에 대해 알아보자 Definition 팩토리 메소드 패턴(Factory Method Pattern)에서는 객체를 생성할 때 필요한 인터페이스를 만든다. 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정한다. 팩토리 메소드 패턴을 사용하면 클래스 인스턴스를 만드는 일을 서브클래스에게 맡기게 된다. - Creational Patterns 사용하는 서브클래스에 따라 생산되는 객체 인스턴스가 결정된다. Situation - 피자 종류가 계속해서 추가되어 새로운 피자에 대한 if 문이 증가하고 new를 피자 클래스안에서 계속해서 처리 -> 객체 생성 코드를 Factory 클래스를 생성하여 이동시킴 - 클래스는 생성해야 하는 클래스를 알지 못함 - 서브클래스는 생성되어야 하는 객체를 지정할 수 있음 - 부모 클래스는 생성을 하위.. 2022. 6. 23.
[Design Pattern] 데코레이터 패턴(Decorator Pattern)에 대해 알아보자 Definition 데코레이터 패턴(Decorator Pattern)으로 객체에 추가 요소를 동적으로 더할 수 있다. 데코레이터를 사용하면 서브클래스를 만들 때보다 훨씬 유연하게 기능을 확장할 수 있다. - Structural Pattern Situation - 객체 책임과 행동이 동적으로 수정 가능해야 할때 - 수정을 위한 서브클래싱은 비실용적이거나 불가능할 때 - 구체적인 구현을 둘러싼 많은 객체가 허용될 때 - 객체를 사용하는 코드를 손상시키지 않고 런타임에 객체에 추가 동작을 할당할 수 있어야 하는 경우 - 상속을 사용하여 객체의 동작을 확장하는 것이 어색하거나 불가능 할 때 - Coffee 샵 예제에서 커피에 추가 옵션이 있을 때, whip, 샷 추가, 모카 추가 등등의 전체 가격, 어떤 순서로.. 2022. 6. 23.
300x250