본문 바로가기

Programming/디자인 패턴12

커맨드 패턴 Command Pattern 이번에 소개할 패턴인 커맨드 패턴은 특정 기능을 캡슐화 시키는 패턴입니다. 1. 커맨드 패턴 소개 커맨드 패턴은 서론에서 이야기 했듯이 특정 기능들을 캡슐화 시키는 패턴입니다. 그래서 보통 매개변수를 이용해서 기능에 다른 요구 사항들을 넣을 수 있게됩니다. 예를 들어 전원을 켜는 기능이 있다고 할 때, 매개변수로 티비냐 컴퓨터냐에 따라 같은 전원을 켜는 기능이라 하더라도 티비를 키거나 컴퓨터를 키는 등의 동작이 가능해집니다. 커맨드 패턴에서는 크게 Invoker(이하 인보커, 호출자), Receiver(이하 리시버, 수신자), Command(이하 커맨드, 명령) 객체로 구분됩니다. 인보커는 기능의 실행을 요청하고 리시버는 명령을 수행하는 객체입니다. 2. 커맨드 패턴 구현 2-1. 커맨드 객체 구현 커맨.. 2021. 9. 15.
싱글턴 패턴 Singleton Pattern 이번에 소개드릴 패턴은 싱글턴 패턴입니다. 1. 싱글턴 패턴 싱글턴 패턴은 이름에서 single;하나의 라는 의미가 들어가 있듯이 하나의 인스턴스 생성을 위한 패턴입니다. 즉, 단 한번의 객체 생성을 보장하는 패턴입니다. 처음들을때는 객체 생성을 단 한번만 한다니까 의미없고 이상해보입니다. 하지만 생각해보면 의외로 단 하나의 객체 생성만을 보장해야 하는 경우가 꽤 있습니다. 대표적으로 설정을 저장하는 객체가 있습니다. 설정은 사용자가 단 하나의 설정을 이용하죠. 만약에 설정이 여러개라면 설정끼리 충돌하는 상황이 발생하기 때문에 이런 설정 객체 같은 경우 단 하나의 인스턴스 생성을 보장해야합니다. 2. 싱글턴 패턴 구현 싱글턴 패턴은 여태까지의 패턴과는 다르게 구현 전에 잠시 생각해 봐야할 것들이 있습니다.. 2021. 9. 13.
팩토리 패턴 Factory Pattern 이번에 소개할 패턴은 팩토리 패턴입니다. 1. 들어가기전에 들어가기전에 new라는 키워드를 집고 넘어가려고 합니다. 갑자기 디자인 패턴하다가 new라는 키워드설명을 왜 하나요 싶겠지만, 팩토리 패턴과 밀접한 관련이 있습니다. 우리가 객체를 생성할때 보통 [객체 객체명 = new 객체생성자]와 같은 방식으로 new를 이용했습니다. 여기서 new라는 것은 생성자를 통해 객체의 인스턴스를 생성하는 것인데요. 이렇게 생성한다는 것은 구체적으로 작성된 클래스를 통해 구현을 한다는 의미입니다. 그래서 객체와 관련한 수정이 발생하면 일일히 관련 코드들을 고쳐야하기에 유지보수면에서 좋지 못한 모습을 보입니다. 그래서 우리는 new 대신에 다른 방식을 이용하는 것을 생각해야합니다.(당연히 무조건 new를 통한 객체 생성.. 2021. 9. 9.
데코레이터 패턴 Decorator Pattern 이번에 소개할 패턴은 데코레이터 패턴입니다. 데코레이터 패턴은 Structural Pattern에 속합니다. 1. 데코레이터 패턴 소개 어디선가 한 번쯤은 "데코레이션"이라는 말을 들어봤을 것입니다. 케이크 위에 과일이나 장식을 얹는 것, 음료에 가니쉬나 다양한 첨가물을 넣는 것들을 우리는 데코레이션 이라고 합니다. 이처럼 한 객체 위에 기능들을 입혀서 사용 목적에 걸맞는 객체로 만드는 것을 데코레이션 패턴이라고 합니다. 예를들면, 케이크 빵위에 생크림을 바르면 생크림 케이크, 초코를 바르면 초코 케이크가 되고, 같은 생크림 케이크 라도 과일을 올릴 수도 있고, 초코를 올릴 수도 있죠. 심지어는 같은 장식(기능)이라도 케이크 빵대신 베이글을 넣을 수도 있습니다. 이처럼 각기 다른 베이스를 가지고 장식을 .. 2021. 9. 2.
옵저버 패턴 Observer Pattern 첫번째로 소개할 패턴은 옵저버(Observer) 패턴 입니다. 옵저버는 관찰자라는 의미를 갖고있는데, 이 패턴이 변화가 발생하게 됨에 따라 객체들에게 알려주는 역할을 하기 때문에 옵저버 패턴이라는 이름을 가지게 되었습니다. 1. 옵저버 패턴 소개 서론에서 간단하게 이야기 했듯이 옵저버 패턴이란, 어떤 주제(속성, 값) 객체가 변화하게 되면 그와 연관된(1개 이상)의 객체 들에게 변화를 알리는 패턴입니다. 여기서 주제 객체는 관찰 대상, 그와 연관된 객체는 옵저버 라고 부릅니다. 따라서 옵저버들은 관찰 대상을 관찰하다가 관찰 대상이 변화하면 그에 따른 이벤트 등을 처리합니다. 관찰 대상과 옵저버들은 느슨한 연결을 가집니다. 느슨한 연결이란 객체 사이에 상호작용이 이루어지지만 직접적인 관계는 없는 상태를 의.. 2021. 9. 1.
디자인 패턴 1. 디자인 패턴이란 디자인 패턴(Design Pattern)이란, 코드가 좋은 효율을 내도록 하는 설계 방법론입니다. 디자인 패턴은 좋은 코드를 작성하기 위한 방법론 입니다. 여기서 말하는 좋은 코드란, 코드의 재사용성을 극대화하여 좋은 유지보수성을 갖게하는 코드를 의미합니다. 이렇게 좋은 코드를 작성하기 위하여 코드들을 작성하다보니 몇 가지 설계 패턴이 나오게 되었고 이것들을 묶어서 디자인 패턴이라고 하기로 했습니다. 디자인 패턴의 바이블이라고 불리우는 GoF의 디자인 패턴 책에서는 디자인 패턴을 세가지 유형으로 분류해서 디자인 패턴을 소개하고 있습니다. 생성 패턴(Creational Pattern) 구조 패턴(Structural Pattern) 행동 패턴(Behavioral Pattern) 생성 패.. 2021. 8. 30.
300x250