[객체지향설계 & 패턴] 프록시 패턴
·
CS/객체지향설계 & 패턴
프록시 패턴 객체의 책임과 관련이 있는 프록시(Proxy) 패턴이다. 프록시 패턴의 핵심은 '객체가 필요해지면 만든다'인데, 대리자 Proxy가 객체를 생성하는 것이다. 프록시 패턴의 기본적인 구조는 다음과 같다. UML 그리는 툴이 익숙하지 않아 Subject 인터페이스에 request1, 2, 3 메소드들이 추가되지 않았는데 원래 Subjec에 request1, 2, 3 메소드가 존재한다. Subject는 Proxy와 RealSubject를 동일시하기 위한 API를 정의하고, Proxy는 클라이언트의 요청을 최대한 처리하는 역할을 맡는다. 클라이언트의 요청을 Proxy 혼자서 처리할 수 없다면 RealSubject에 처리를 맡겨야 하는데, 여기서 Proxy 패턴의 핵심이 등장한다. RealSu..
[객체지향설계 & 패턴] 데코레이터 패턴
·
CS/객체지향설계 & 패턴
개요 Decorate는 '장식하다'라는 뜻의 동사인데, 이것의 파생형 Decorator는 '장식자'라는 뜻이다. 이번에 알아볼 데코레이터 패턴은 객체를 장식하는 패턴인데, 여기서 장식은 '기능을 추가한다'라고 생각하면 더 이해하기 편하다. 데코레이터 패턴 데코레이터 패턴의 등장 구성 요소는 Component, ConcreteComponent, Decorator, ConcreteDecorator로 총 4가지이다. Component는 기능을 추가할 때 핵심이 되는 역할로 API만 정의하고 여기서 정의한 API는 ConcreteComponent에서 구현한다. 장식자 Decorator는 Component와 동일한 API를 가지고, Component를 인스턴스로 가진다. 구체적인 장식자 Concrete Decor..
[객체지향설계 & 패턴] Solid 설계 원리
·
CS/객체지향설계 & 패턴
개요Solid 설계 원리는 5가지가 존재한다. 잘 설계되었는지 평가하는 데에 도움이 되는 설계 원칙으로 단일 책임의 원리 - SRP, 개방 폐쇄의 원리 - OCP, 리스코프 교체의 원리 - LSP, 의존 관계 역전 원리 - DIP, 인터페이스 격리의 원리 - ISP가 있다.  SRP(Single Responsibility Principle) -  단일 책임 원리 단일 책임의 원리는 한 class를 변경해야 하는 이유는 오직 하나뿐이어야 한다는 것이다. 즉, 하나의 클래스에 너무 많은 역할 / 책임을 부여하여 클래스가 너무 많은 역할을 수행하는 것이다. 아래의 예시 클래스를 한번 생각해보자. Employee 클래스가 있고 다음의 public 메소드를 가진다.calcuatePay, calculateTaxes..