본문 바로가기

소프트웨어공학/디자인 패턴19

Composite Pattern - 구조, 개별 객체와 복합객체를 통합적으로 다루기, children의 저장 순서가 요구될 때 / ex) 메뉴 | Design Pattern 디자인 패턴 Composite Pattern Treat individual objects and Composite of objects uniformly. 개별 객체와 복합 객체를 클라이언트에서 동일하게 사용 child가 parent에 대한 참조자를 가지면 - tree traversal이 용이해지며 - child 자신이 제거되기를 원하는 경우 편리함 children의 저장 순서가 요구되는 경우 Composite Object (복합 객체) 사용자 정의 클래스를 도메인으로 하는 속성을 가진 객체 복합 객체 시스템에서 기본으로 제공하지 않는 사용자 정의 클래스(user-defined class)를 도메인으로 하는 속성을 가진 객체를 복합 객체(composite object)라 한다. 복합 객체에서 사용자 정의 클래스를 도메.. 2021. 10. 14.
Facade 패턴 (퍼사드 패턴) - 구조, 통합 인터페이스 제공 | Design Pattern 디자인 패턴 / Facade Pattern 복잡한 시스템을 구조화하여 쉽게 사용 문제점) : 여러 개의 구성요소(interface)로 구성된, 사용 절차가 복잡한 시스템 Key Idea : subsystem (a set of interfaces)에 대해 통합 인터페이스 제공 예제 코드 public class HomeTheaterFacade { Amplifier amp; Tuner tuner; DvdPlayer dvd; CdPlayer cd; Projector projector; TheaterLights lights; Screen screen; PopcornPopper popper; public HomeTheaterFacade(Amplifier amp, Tuner tuner, DvdPlayer dvd, CdPlayer c.. 2021. 10. 12.
Adapter 어댑터 패턴 - 구조, client 가 요구하는 인터페이스와 제공된 클래스의 인터페이스가 일치하지 않을 때 | Design Pattern 디자인 패턴 구조에 따른 패턴 분류 적용 범위 Scope 클래스 class - 클래스 간 관계 - 주로 inheritance 사용 - 정적) 컴파일 시 결정됨 Adapter (class) (상속) 객체 object - 객체 간 관계 - 주로 composition 사용 - 동적) 실행 시 변경 가능 Adapter (object) (구성) Facade (퍼사드) Composite Decorator Proxy Bridge Flyweight 인터페이스 관련 패턴 • Adapter pattern • Facade pattern • Composite pattern • Bridge pattern ※ 모두 구조 패턴에 속함 Adapter 구조 패턴 언제 ? -> Interface mismatching client 가 요구하는 인터페.. 2021. 10. 10.
싱글톤 패턴 코드 (Singleton pattern java code) | Design Pattern 디자인 패턴 / 초기화 Eager 초기화 클래스 적재시 1회 실행, 클래스 인스턴스 생성을 실제로 사용되기전에 먼저 진행 Static initializer private static final Singleton INSTANCE = new Singleton(); 예제 코드 public class Singleton { //1. 정적초기화문 + 2. private 생성자 -> 유일성 보장 private static Singleton uniqueInstance = new Singleton(); private Singleton() {} // 외부 호출 (new Singleton() 불가) // 3. 모든 client 가 사용할 global access point 제공 public static Singleton getInstanc.. 2021. 10. 8.
Singleton 패턴 클래스의 인스턴스가 하나만 있는 것 | Design Pattern 디자인 패턴 디자인 패턴 Design Patterns 패턴이란 특정 context 내에서 주어진 문제에 대한 solution 이다. 문맥) 반복적으로 발생하는 상황 문제) context 내에서 이루고자 하는 목적과 제약 조건(constraint) 해결) 문제를 해결하는 일반적인 설계 디자인패턴 중 하나인 싱글톤 패턴 그 전에 " singleton " 에 대한 용어부터 알아보자. Singleton 1. (단독) 개체 2. 독신자 3. 외둥이(단일아) 출처 : 네이버사전 어떤 클래스의 인스턴스 갯수를 오직 하나로 제한하는 패턴 시스템 전체의 행동을 조정해주는 단 하나의 객체가 필요할 때 중앙집중적인 관리 Singleton Pattern : JVM 내에서 클래스의 인스턴스가 하나만 있는 것 어떤 클래스의 instance가.. 2021. 10. 5.
[Design Pattern] 디자인 패턴 / 설계 원칙 .java 설계 원칙 기본 원칙들 Encapsulation, Abstraction Inheritance, Polymorphism Association/Aggregation/Composition 객체 : 속성 (Attribute) + 메소드(Method) 현실 세계에 존재하는 개체를 속성뿐만 아니라 기능까지 포함시킨 것 객체지향 : 현실 세계의 개념(concepts or things)을 객체로 표현함 객체지향 기술은 객체와 객체 간의 통신을 통해 프로그램이 구현 객체지향프로그램 = 메시지 전송을 통해 상호작용하는 객체들의 모임 * 모듈화된 설계 - 모듈 : 객체 , 변수 : 속성, 함수 : 메소드 객체지향언어 4대 요소 객체, 메시지 전송, 클래스, 상속 객체 : 상태(state) + 행위(behavior) = 자신.. 2021. 10. 2.
[Design Pattern] 디자인 패턴 / UML Base .java 2021.09 디자인 패턴 강의 정리 UML A standard language for writing software blueprints 어휘 (Vocabularies) 세 종류의 Building block 으로 구성된다. - Things , Relationships, Diagrams Things Structural things 모델의 정적 부분 (개념적 요소)을 나타냄 interface, class, Behavioral things 모델의 동적 부분 (행동)을 나타냄 interaction (객체간 messaging), Grouping things organizational part package and its variations Annotational things explanatory part note.. 2021. 9. 11.