OO 기초추상화: 불필요한 정보를 생략하고 중요한 것에 중점을 두어 모델링하는 것캡슐화: 외부에서의 접근을 제한하기 위해 인터페이스를 제외한 세부 정보를 은닉하는것다형성: 하나의 메시지에 대해 각각의 객체가 가지고 있는 고유한 방법으로 응답할 수 있는 능력상속: 상위클
Subject에서 중요한 데이터를 관리하고, Subject의 상태가 변화하면 Observer에서 소식이 전해짐, Observer은 Subject를 구독하고 있으며 갱신 내용을 전달 받음OO 원칙:상호작용하는 객체 사이에는 가능하면 느슨한 결합을 사용해야 한다. 느슨한
OO 원칙: 클래스는 확장에는 열려있어야 하지만, 변경에는 닫혀있어야 한다.슈퍼클래스 Beverage에 여러 개의 커피 메뉴 클래스를 상속으로 추가할 경우, 많은 수의 상속 관계가 발생하는 문제점이 있음따라서 음료에 여러 첨가물들을 장식(데코레이트)하는 방법으로 구현변
Factory Pattern ( 팩토리 패턴 ) : 객체를 생성할 때 필요한 인터페이스를 만듬, 어떤 클래스의 인스턴스를 만들지 서브클래스에서 결정 Factory : 객체를 생성하는 클래스 OO 원칙 : 추상화된 것에 의존하게 만드록, 구상 클래스에 의존하지 않게
고전적인 싱글턴 패턴 구현=> 자원을 많이 차지하는 것을 방지(오버헤드 방지), 필요할 때만 사용 가능문제점: 멀티스레딩 문제 발생 => 동시에 실행되었을 때,인스턴스가 생성되었는지 모르고 2개의 인스턴스를 생성하게 됨해결방안1) getInstance의 속도가 그리 중
커맨드 객체는 일련의 행동을 특정 리시버와 연결함으로써 요청을 캡슐화Client: 커맨드 객체 생성, 리시버 설정 ex) 고객Command 객체: execute() 메서드 호출로 수행, 특정 작업을 처리하라는 지시 전달 ex) 주문서execute(): 리시버에 있는 특
객체 어댑터: Composition으로 Adapter에게 요청을 전달어댑터 클래스와 그 서브 클래스에 대해서도 어댑터 역할 가능Composition을 사용하여 유연함클래스 어댑터: Target와 Adatper 모두 서브클래스로 만들어서 사용특정 어댑터 클래스에만 적용할
알고리즘의 골격을 정의한다. 알고리즘의 일부 단계를 서브클래스에서 구현할 수 있으며, 알고리즘의 구조는 그대로 유지하면서 알고리즘의 특정 단계를 서브클래스에서 재정의할 수도 있다.OO 원칙\-할리우드 원칙: 저수준 구성요소가 시스템에 접속할 수는 있지만 언제 어떻게 그
특정 객체로의 접근을 제어하는 대리인(특정 객체를 대변하는 객체)를 제공하는 패턴이다.대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴이다.접근 제어 방법원격 프록시를 사용하여 원격 개체로의 접근을 제어할 수
옵저버, 전략, 컴포지트 패턴으로 이루어진 복합패턴으로, 모델, 뷰, 컨트롤러로 이루어져 있다.모델에는 모든 데이터, 상태와 애플리케이션 로직이 들어있다.뷰와 컨트롤러에서 모델의 상태를 조작할 때 필요한 인터페이스를 제공하고, 모델은 뷰와 컨트롤러에게 상태 변화를 알린