Solid 2

[디자인패턴] Decorator pattern

Decorator Pattern 이란 기존 뼈대(Class)는 유지하되, 이후 필요한 형태로 꾸밀 때 사용한다. 즉, 객체에 추가적인 요건을 동적으로 첨가한다. SOLID중에서 개방폐쇄 원칙(OCP)과 역전 원칙(DIP)을 따른다. 쉽게 예시를 들면, 에스프레소 원액 (기존 뼈대 = Class)에 물을 첨가하면 아메리카노가 된다. 또는 우유와 시럽을 첨가하면 카페 라떼가 된다. 이와같이 기존 뼈대는 유지하되, 필요한 형태로 꾸밀때 상요하는 패턴이 Decoratr Pattern이다. 예시 자동차를 예시로 들어보자. ICar라는 인터페이스를 정의하고, 이를 구현하는 Audi 클래스를 두고, 이로 인해 audi라는 객체가 생성됐다고 가정하자. 그런데 만약 런타임 단계에서 audi의 특징을 그대로 두고 업그레이..

SOLID(객체 지향 설계)

좋은 소프트웨어를 설계하기 위해서는? 코드의 재사용 및 유지보수가 용이한 것이 좋은 소프트웨어다. 이를 위해 결합도(Coupling)는 낮추고 응집도(Cohesion)는 높여야한다. 예를들어 A클래스와 B클래스가 서로 의존하고 있을 경우, A코드를 수정하면 B코드에도 영향을 끼칠 수 있다. 이런 경우를 결합도가 높다고 일컫는다. 응집도는 한 모듈 내부의 처리 요소들이 서로 관련되어있는 정도를 말한다. 응집도가 높으면 해당 모듈은 하나의 책임에 집중하고 독립성이 높아져, 재사용 및 유지보수가 용이하다. SOLID (객체지향 설계) 1. SRP (Single Responsibility Principle) 단일 책임 원칙 요약 : 한 클래스는 하나의 책임만 가진다. 예시로 아래 코드는 객체지향의 '다형성'을 ..