본문 바로가기

Programming/DesignPattern10

[디자인 패턴] 데코레이터(Decorator) 패턴 Goal 데코레이터 패턴을 이해한다. 데코레이터(Decorator) 패턴 데코레이터 패턴은 기본 기능에 추가할 수 있는 많은 종류의 부가 기능에서 파생되는 다양한 조합을 동적으로 구현할 수 있는 패턴 Component 클래스에는 기본적인 기능을 뜻하는 ConcreteComponet와 추가 기능에 뜻하는 Decorator의 공통 기능에 대해서 정의한다. ConcreteComponet 클래스에서는 기본적인 기능에 대해서 구체적으로 구현한다. Decorator 클래스에서는 기본적인 기능 외에 추가적인 기능에 대해서 구현한다. ConcreteDecorator 클래스에서는 많은 수가 존재하는 구체적인 Decorator의 공통 기능을 제공한다. ConcreteDecorator 클래스에서 추가되는 개별적인 기능을 구.. 2021. 5. 23.
[디자인 패턴] 커맨드(Command) 패턴 Goal 커맨드 패턴을 이해한다. 커맨드(Command) 패턴 요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 취소할 수 있게 하는 패턴 커맨드 패턴은 실행될 기능을 캡슐화함으로써 기능의 실행을 요구하는 호출자(Invoker)와 실제 기능을 실행하는 수신자(Receiver) 사이의 의존성을 제거한다. 이벤트가 발생하였을 때 실행될 기능이 다양하면서도 변경이 필요할 때 이벤트를 발생하는 클래스를 수정하지 않고 재사용할 때 유용하다. Example 램프의 불이 켜지는 프로그램을 구현해보자. 램프에 불이 켜지는 프로그램을 개발하려면 버튼을 눌려졌음을 인식하는 Button 클래스와 불을 켜는 기능을 제공하는 Lamp 클래스.. 2021. 5. 20.
[디자인 패턴] 스테이트(State) 패턴 Goal 스테이트(State) 패턴을 이해한다. 스테이트(State) 패턴 어떤 행위를 수행할 때 상태에 행위를 수행하도록 위임하는 패턴 스테이트 패턴을 설명하기 위해서 형광등 상태 다이어그램을 구현해보자. 형광등에도 다양한 기능(취침등...)이 있을 수 있지만 현 상태 머신 다이어그램에는 On, Off 구현하였다. 다이어그램에서 둥근 사각형은 상태(State)를 의미하고 화살표는 상태 전이(State Transitiion)를 의미하며 검은색 원 화살표는 시작 상태를 의미한다. ※상태(State) - 상태란 객체가 시스템에 존재하는동안, 즉 객체의 라이프 타임 동안 객체가 가질 수 있는 어떤 조건이나 상황을 표현한다. [액티비티(Activity)나 이벤트(Event)] 크게 2가지의 상태를 생각할 수 있.. 2021. 5. 17.
[디자인 패턴] 싱글턴(Singleton) 패턴 Goal 싱글턴(Singleton) 패턴을 이해한다. 싱글턴(Singleton) 패턴 싱글턴(Singleton) 패턴은 인스턴스가 오직 하나만 생성되는 것을 보장하고 어디에서는 인스턴스에 접근할 수 있도록 하는 디자인 패턴 ※싱글턴은 하나의 원소만을 가지는 집합을 의미 Singleton : 하나의 인스턴스만을 생성하는 책임이 있으며 getInstance() 메서드를 통해 모든 클라이언트에게 동일한 인스턴스를 반환하는 작업을 수행 싱글톤 클래스는 생성자를 Private으로 함으로써 외부에서 객체를 생성할 수 없도록 하고 instance를 전역(Static)으로 구현한다. 외부에서는 GetInstance() 함수를 사용하여 접근할 수 있도록 한다. ▷싱글턴 패턴 장점 고정된 메모리영역을 얻으면서 한 번의 n.. 2021. 5. 13.