본문 바로가기

Knowledge/Design Pattern

(12)
데코레이터 패턴 (Decorator Pattern) 데코레이터 패턴 (Decorator Pattern) 주어진 상황 및 용도에 따라 어떤 객체에 기능을 덧붙이는 패턴이다.기능 확장이 필요할 때 서브 클래싱 대신 쓸 수 있는 유용한 대안이다. 》》 동적으로 객체의 추가적인 기능들을 가진 객체를 덧붙여 꾸밀 수 있다. 여기서 중요한 디자인 원칙 중 하나를 알아야한다. OCP(Open-Closed Principle) 란? OCP는 가장 중요한 디자인 원칙 가운데 중 하나.클래스는 확장에 대해서는 열려있어야하지만 코드 변경에 대해서는 닫혀 있어야 한다. 》》 기존 코드는 건드리지 않은 채로 확장을 통해서 새로운 행동을 추가하는 것이 목표 ! 데코레이터 패턴 사용법 1. 메인 클래스를 생성한다. 2. 메인 클래스의 객체를 꾸밀 수 있는 서브 클래스의 데코레이터 타..
옵저버패턴 (Observer Pattern) 옵저버 패턴 (Observer Pattern) 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 연락이 가고 자동으로 내용이 갱신되는 방식을 말한다. 》》 1 : N (다) 의 의존성으로 정의 》》 일방적 통지방식의 패턴 》》 주체는 특정 데이터를 감시하고 있다가 변화를 감지한다. 옵저버 객체는 언제든지 삭제, 추가가 가능하며 옵저버 객체에서 삭제가 되면 주체의 새로운 값을 받을 수 없게된다. 여기서 주체와 옵저버 객체는 느슨하게 결합되어있다.느슨하게 결합되어있다는 것은 상호작용을 하긴 하지만 서로에 대해 잘 모른다는 것을 뜻한다. 》》 주체가 옵저버에 대해서 아는 것은 옵저버거 특정 인터페이스를 구현한다는 것뿐 》》 느슨하게 결합되어있는 디자인을 사용하면 변경사항이 생겨도 무난히 처리 가능 ..
전략패턴 (Strategy Pattern) 가장 많이 사용되는 디자인 패턴 중 하나인 전략패턴 전략패턴 (Strategy Pattern) 알고리즘 인터페이스를 정의하고, 각각의 알고리즘 클래스별로 캡슐화하여 각각의 알고리즘을 교체 사용 가능하게한다.즉, 하나의 결과를 만드는 목적은 동일하나 그 목적을 달성할 수 있는 방법(전략, 알고리즘)이 여러가지 존재할 경우 기본이 되는 가장 많이 사용되는 패턴 중 하나이다. 전략패턴을 사용하는 이유는 무엇일까?전략패턴을 사용하는 사용하는 가장 큰 이유는 알고리즘의 캡슐화이다. 디자인 원칙 1 : 애플리케이션에서 달라지는 부분을 찾아내고 달라지지 않는 부분으로부터 분리시킨다. 디자인 원칙 2 : 구현이 아닌 인터페이스에 맞춰서 프로그래밍한다. 디자인 원칙 3 : 상속보다는 구성을 활용한다.
디자인 패턴 (Design Pattern) 이란 ? 디자인 패턴 (Design Pattern) 문제를 효율적으로 해결하기 위한 절차나 방법의 집합을 뜻한다.즉, 어떤 문제를 해결하기 위한 도구 혹은 방법을 말한다. 힘들게 패턴 생각할 필요없이 그냥 문제를 해결하고 코드를 짜면 되지 않을까 ? 만약 수정을 주기적으로 해야하고 관리해야할 클래스 범위가 넓어진다면 ??실제로 현업에서는 개발하는 시간보다 유지 / 보수 하는 시간과 비용이 많이든다. 디자인패턴을 사용하면 설계자로 하여금 재사용이 가능한 코드를 선택하고 재사용을 방해하는 코드는 배제하도록 도와준다.이미 만든 시스템의 유지보수나 문서화도 개선할 수 있고 객체 간의 상호작용 또는 설계의 의도 등까지 명확하게 정의할 수 있다.