본문 바로가기

GoF의 디자인 패턴(Design Patterns: Elements of Reusable Object-Oriented Software)47

GoF의 디자인 패턴(Design Patterns: Elements of Reusable Object-Oriented Software) - 1장 서론(1.6) [객체 인터페이스의 명세] 객체가 선언하는 모든 연산은 연산의 이름, 매개변수로 받아들이는 객체들, 연산의 반환 값을 명세한다. 이를 연산의 시그니처(signature)라고 한다. 인터페이스(interface)는 객체가 정의하는 연산의 모든 시그니처들을 일컫는 말로 객체의 인터페이스는 객체가 받아서 처리할 수 있는 연산의 집합이다. 타입(type)은 특정 인터페이스를 나타낼 때 사용하는 이름. 다른 인터페이스를 포함하는 인터페이스를 서브타입(subtype), 다른 인터페이스가 포함하는 인터페이스를 슈퍼타입(supertype). 서브타입은 슈퍼타입의 인터페이스를 상속한다. 서브타입이 슈퍼타입을 상속하면, 서브타입은 슈퍼타입에 정의된 연산을 포함하게 된다. 인터페이스 개념은 객체지향 시스템에서 가장 기본적인.. 2020. 4. 4.
GoF의 디자인 패턴(Design Patterns: Elements of Reusable Object-Oriented Software) - 1장 서론(1.5~1.6) [1.5 카탈로그 조직화하기] 패턴을 분류하는 기준은 두 가지입니다. 첫 번째 분류 기준은 목적. 패턴은 생성, 구조, 행동 중의 한 가지 목적을 갖습니다. 생성 패턴은 객체의 생성 과정에 관여하는 것이고, 구조 패턴은 클래스나 객체의 합성에 관한 패턴들입니다. 행동 패턴은 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 정의합니다. 두 번째 분류 기준은 범위. 패턴을 주로 클래스에 적용하는지 아니면 객체에 적용하는지를 구분하는 것입니다. 클래스 패턴은 클래스와 서브클래스 간의 관련성을 다루는 패턴입니다. 관련성은 주로 상속이며, 컴파일 타임에 정적으로 결정됩니다. 객체 패턴은 객체 관련성을 다루는 패턴으로서, 런타임에 변경할 수 있으며 더 동적인 성격을 가집니다. 대부분의 패턴들은 어느 정.. 2020. 4. 3.
GoF의 디자인 패턴(Design Patterns: Elements of Reusable Object-Oriented Software) - 1장 서론(1.3~1.4) [1.3 디자인 패턴 기술하기] 설계를 재사용하기 좋게 만들려면 설계를 하기까지의 다양한 결정, 대안, 장단점 등을 고려한 과정도 함께 적어주어야 합니다. -패턴 이름과 분류(Pattern Name and Classification) -의도(Intent) -다른 이름(Also Known As) -동기(Motivation) : 설계 문제를 제시하고, 패턴 안에서 클래스나 객체 구조가 어떻게 문제를 해결하는지 설명해 주는 일종의 시나리오 -활용성(Applicability) -구조(Structure) : 객체 모델링 기법(Object Modeling Technique: OMT)에 기반을 둔 표기법을 이용하여 해당 패턴에서 쓰는 클래스들을 시각적으로 나타냅니다. 또한, 객체 사이에 오가는 요청과 협력 관계의 순.. 2020. 4. 2.
GoF의 디자인 패턴(Design Patterns: Elements of Reusable Object-Oriented Software) - 1장 서론(1.1~1.2) [Chapter 1. 서론] 객체지향 소프트웨어를 설계한다는 것은 쉬운 일이 아닙니다. 적절한 객체를 식별해야 하고, 올바른 크기의 클래스와 클래스의 인터페이스를 정의해야 하고, 클래스 간의 상속을 정의하며, 클래스들 간의 관계를 설정할 수 있어야 합니다. 나중에 생길 수 있는 문제나 추가된 요구 사항들도 수용할 수 있도록 일반적이고 포괄적이어야 합니다. 즉, 재설계를 하지 ㅇ낳아도 다시 사용할 수 있어야 하고, 아니면 가능한 최소한의 수정을 통해서 다시 사용할 수 있는 설계여야 합니다. 디자인 패턴은 설계자로 하여금 재사용이 가능한 설계는 선택하고, 재사용을 방해하는 설계는 배제하도록 도와줍니다. 또한 패턴을 쓰면 이미 만든 시스템의 유지보수나 문서화도 개선할 수 있고, 클래스의 명세도 정확하게 할 수.. 2020. 4. 1.
GoF의 디자인 패턴(Design Patterns: Elements of Reusable Object-Oriented Software) - 머리말 [머리말] 이 책은 객체지향적 기술이나 설계를 소개하는 책이 아닙니다. 이 책은 독자들이 최소한 한 가지 객체지향 프로그램 언어에 대한 사전 지식과 경험이 있으며, 또 객체지향 설계에 대한 경험도 있다고 전제합니다. 이책은 객체지향 소프트웨어를 설계할 때 겪는 특별한 문제에 대한 간결하고 명확한 해결책을 서술한 디자인패턴 책입니다. 자신의 설계를 더 융통성 있고, 모듈화되며, 재사용 가능하고, 이해하기 쉬운 것으로 만들 수 있는 통찰력을 지니게 될 겁니다. 계속 반복해서 책을 읽다 보면 설계의 통찰력과 영감을 얻을 수 있습니다. [독자를 위한 가이드] 첫 번째 부분에서는(1장과 2장) 디자인 패턴이 무엇인지와 디자인 패턴이 어떻게 객체 지향 소프트웨어 설계에 도움을 주는 지 설명합니다. 두 번째 부분은(.. 2020. 3. 31.