본문 바로가기
반응형

GOF14

Composite Pattern, 복합체 패턴 복합체 패턴이란? 컴포지트 패턴 혹은 복합체 패턴이라고 불리는 이 패턴은 객체들을 트리구조로 구성하여 개별객체와 복합 객체를 동일하게 취급할 수 있도록 하는 구조적 디자인패턴이다. 이를 통해서 단일객체와 복합객체를 일관된 방식으로 다룰 수 있게 된다. 왜 사용해야 하는가? 단일 객체와 복합 객체를 동일하게 취급하기 때문에 클라이언트 쪽에서 코드를 일관된 방식으로 사용할 수 있게 된다. 재귀적인 구조로 편리하게 구현할 수 있다. 새로운 단일 객체나 복합 객체를 추가할 때 기존의 코드를 수정하지 않는다. 어떤 경우에 사용해야 하는가? 나무처럼 계층적인 부분-전체 구조를 갖고 있을 때 사용하면 좋다. 예를 들어, 그래픽 요소나, 문서 구조등이 있다. 클라이언트가 일관된 인터페이스로 사용해야 할 때 사용하면 좋.. 2024. 2. 5.
Bridge Pattern, 브릿지 패턴 브릿지 패턴이란? 큰 클래스나 클래스들의 집합을 추상화, 구현을 이용해서 계층구조로 작성하여 독립적으로 개발할 수 있도록 만든 디자인패턴이다. 마치 다리처럼 프로그램의 추상화 부분과 구현 부분을 연결을 해주어 서로 독립적으로 변경하거나 확장할 수 있도록 하는 것이다. 왜 사용해야 하나요? 추상화와 구현 부분을 독립적으로 확장할 수 있다 => 기능을 확장하면서도 기존 코드를 건들지 않는다는 말이다! 특히 복잡한 계층구조에서 이를 활용하면 많은 수의 클래스를 줄일 수 있습니다. 런타임시 구현을 바꿀 수 있는 유연성을 갖게 됩니다. 클라이언트에게 구현부의 변경을 숨길 수 있게 되어 안정성이 증가합니다! 어떤 경우에 사용하나요? 복잡한 클래스의 계층구조를 가지고 있어 많은 수의 클래스가 생겨 추가하거나 변경하기.. 2024. 2. 5.
Prototype Pattern, 프로토타입 패턴 프로토 타입 패턴이란? 객체를 생성할 때 기존 객체를 복제하여 새로운 객체를 생성하는 방법을 제공하는 패턴이다. 이를 통해서 객체의 복잡한 생성 과정을 피하고, 기존 객체의 상태를 유지하며 새로운 객체를 생성할 수 있게 된다. 프로그래밍에서 변경이 일어나는 부분을 캡슐화한다는 따른다. 왜 사용하나요? 객체 생성 과정이 복잡하거나 시간이 많이 걸릴 경우, 기존 객체를 복제하여 새로운 객체를 생성하는 것이 효율적이기 때문이다. 객체의 클래스에 종속되지 않고, 복제를 통해 동적으로 객체를 생성할 수 있다. 객체의 상태를 유지한 채 다양한 상태의 객체를 생성할 수 있다. 언제 사용하나요? 객체 생성 비용이 크고 유사한 객체를 자주 생성해야 할 때 객체의 클래스 계통이 복잡하고 변경이 빈번하게 일어날 때 문제점 .. 2023. 7. 11.
Builder Pattern, 빌더 패턴 빌더 패턴 (Builder Pattern) 빌더 패턴이란? 객체를 단계별로 생성할 수 있게 만들어주는 패턴이다. 왜 사용하나요? 생성자의 의미가 좀 더 명확해진다. 재사용을 높인다. 단일 책임의 원칙 (생성만을 담당하는 빌더가 생김) 클래스에 여러 필드들이 있고 생성자에 너무 많은 파라미터를 두게 되면 호출 시에 매우 지저분한 코드가 될 것이다. 또한 파라미터를 부분적으로 사용하지 않는 경우 오버로딩을 통해서 해결할 수 있지만 생성자의 수가 기하급수적으로 늘어나게 될것이다. 빌더 패턴은 이러한 경우에 사용하면 좋은 효과를 볼 수 있다. 예를 들어 집을 만든다고 했을 때 창문의 형태, 수영장 여부, 크기, 주변 나무 개수, 지붕의 형태, 집의 형태 등등 다양한 조건이 올 수 있다. 이 것을 한 번에 만든다.. 2023. 6. 20.
디자인 패턴 (Design patterns) GoF의 디자인 패턴(개정판)객체지향 소프트웨어를 설계할 때 겪는 문제들에 대한 해결책을 집대성하여 제시하는 『GoF의 디자인 패턴』. 이 책은 디자인 패턴이 무엇인지, 패턴이 어떻게 객체지향 프트웨어 설계에 어떻게 도움을 주는지, 실제 디자인 패턴은 어떻게 되는가 등에 관하여 정리한 내용들을 수록하고 있다.저자에릭 감마, 리처드 헬름, 랄프 존슨, 존 블리시디스출판Pearson출판일2011.11.01디자인 패턴은 GoF(4인의 갱)으로도 알려진 Erich Gamma(에리히 감마), Richard Helm(리처드 헬름), Ralph Johnson(랄프 존슨), John Vlissides(존 블리시데스)이 1994년 출판한 "Design Patterns: Elements of Reusable Object-.. 2023. 2. 3.
반응형