본문 바로가기

디자인패턴8

[정보처리기사 필기] 프로그래밍 언어 활용 - 객체지향 기술 객체지향 기술 class 유사한 객체를 묶어 하나의 공통된 특성 표현 데이터를 추상화하는 단위 다형성 연산이 같더라도 클래스가 다르면 전혀 다르게 수행되는 연산 수평 + 수직 상속성 수직 구조 재사용성 결합도 강해진다. 정적 바인딩 재사용성 : 생산성에 가장 영향을 주는 요소 람바우 객체 모형 → 동적 모형 → 기능 모형 객체 식별 , 상태도 자료 흐름도 Coad와 Yourdon 방법 객체지향 분석 방법론 중 E - R 다이어그램 사용 Booch 방법 미시적 개발 프로세스 → 거시적 개발 프로세스 Jacobson 상호 작용 서술한 시나리오 접근 Wirfs - Brocks 방법 고객 명세의 평가 시작 설계로 끝남 객체지향 설계 원칙 ISP DIP LSP SRP OCP 확장에 열려있고 수정에 닫혀있다. 객체.. 2022. 3. 26.
Command Pattern 커맨드(명령) 패턴 - 행동, 메소드 호출의 캡슐화 | [Design pattern] 디자인 패턴 Command Pattern 메소드 호출을 캡슐화(encapsulation) 한다. 여러 기능을 실행할 수 있도록 재사용성이 높은 클래스를 설계하는 패턴 서비스를 호출할 때 융통성을 높이려고 사용 매개 변수를 사용하여 여러가지 다른 요구사항을 처리 문제점) GUI toolkit GUI 컴포넌트(버튼, 텍스트필드) 들이 Client 가 설정한 임의의 작업을 수행하도록 하려면 어떻게 해야할까 Universal remote controller 각 버튼이 임의의 가전제품을 제어하게 하려면 어떻게 해야 할까 Unknown consumer electronic devices 객체간 상호작용 Receiver : 서비스 제공자 Invoker : Client의 일부가 될 수 있다. invoker 와 receiver 사이에.. 2021. 12. 31.
Abstract Factory Pattern - 생성, 팩토리 추상화와 제품군 생성 추상화 | 추상 팩토리 패턴 [Design pattern] 디자인 패턴 Abstract Factory 다양한 구성 요소 별로 객체의 집합 생성 같은 종류의 여러 개의 객체를 생성할 수 있는 클래스를 생성 생성 군들을 하나에 모아놓고 팩토리(Factory) 중에서 선택하게 하는 패턴 관련있는 서브 클래스를 묶어서 팩토리 클래스를 만들고, 이들 조건에 따라 객체를 생성하는 패턴 여러 개의 클래스를 하나의 추상 클래스로 묶어 한번에 교체할 수 있는 패턴 ex) 제품군 (A family of products) GUI widgets : window, scroll bar, button, text field .. Pizza ingredients : dough, sauce, cheese ... - 제품, 운영체제, 회사별로 유사한 제품이지만 지원하는 기능에 차이가 있을 경우, 기능별로 통.. 2021. 12. 26.
State Pattern 상태 패턴 - 행위, 내부 상태를 가져서 특정 상태에서의 행동들을 하나의 class에 캡슐화 | Design pattern 디자인 패턴 State pattern The State Pattern allows an object to alter its behavior when its internal state changes. The object will appear to change its class. 규칙에 따라 객체의 상태를 변화시키면서 객체가 할 수 있는 행위를 바꾸는 패턴 특정 메소드가 객체의 상태에 따라 다른 기능을 수행 객체의 상태에 따라 동일한 루틴에서 다른 행동을 할 수 있다. 용어 내부 상태 프로그램의 실행 과정에서 현재 유지하고 있는 변수 및 실행 상황. 내부 상태를 가지는 머신 자판기, 엘레배이터, ATM 기기 내부 상태를 가지는 머신은 현재 상태에 따라 같은 행동(사건) 이 다른 결과를 낳을 수 있다. ex) 자판기내 음.. 2021. 12. 16.
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.
싱글톤 패턴 코드 (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.