이론적인거/디자인 패턴

    [디자인 패턴] Observer 패턴

    Observer 패턴 관찰 대상인 특정 객체의 상태가 변하면 그것을 관찰하는 다른 여러 객체에게 이 사실을 자동으로 통지하여 자동 갱신되도록 한다. 예시 엑셀에서 표를 이용하여 그래프를 생성했다고 하자 표의 값이 변경되면 그 즉시 그래프의 모양이 바뀌는것도 Observer패턴의 일부이다. 코드 다음은 Observer 패턴이 적용되지 않은 코드이다. class Table { private int a, b, c; public void update(EData d) { this.a = d.getA(); this.b = d.getB(); this.c = d.getC(); display(); } public void display() { } } class Bar { private int a, b, c; public..

    [디자인 패턴] Template Method 패턴

    Template Method 패턴 개요 특정 기능을 수행하기 위한 처리 단계에 대한 기본 구조가 유사할 때 사용한다. 커피와 차를 만드는 방법을 보자 커피 요리법 차 요리법 1. 물을 끓인다. 1. 물을 끓인다. 2. 끓는 물에 커피를 우린다. 2. 끓는 물에 티백을 적신다. 3. 컵에 따른다. 3. 컵에 따른다. 4. 설탕과 우유를 첨가한다. 4. 레몬을 첨가한다. 커피 요리법과 차 요리법은 매우 유사하다. 이를 이용하여 공통적인 부분을 묶는다면 유지보수성이 올라갈 수 있다. 코드 일단 따로따로 구성된 코드를 확인해보자. class Coffee { void prepareRecipe() { boilWater(); brewCoffee(); pourInCup(); addSugarAndMilk(); } pri..

    [디자인 패턴] Adaptor 패턴

    Adaptor 패턴 개요 기존 클래스를 외부의 표준 클래스나 구매 클래스로 대치하는 것이 필요할 때 적용한다. 코드 기존 Tax 클래스의 findTax() 메소드의 기능 변경을 하기 위해 다른 인터페이스를 생성하고 적용한 코드이다. public interface TaxIF { public void findTax(); } public class Tax implements TaxIF { public void findTax() { } } public class TaxTest { static TaxIF t; public static void main(String[] args) { t = new Tax(); t.findTax(); } } public interface HSTaxIF { public void get..

    [디자인 패턴] Singleton 패턴

    Singleton 패턴 개요 특정 클래스가 단 하나의 객체만을 생성하는 것을 보장 예시 ConnectionPool 코드 public class OrderController{ **private static OrderController oc;** private OrderController() { ... } public static OrderController getOC(){ if(oc==null){ oc = new OrderController(); } return oc; } } 결과 클래스 메소드를 정의하여 객체 생성 없이 클래스 이름만으로 유일한 객체를 생성할 수 있으며 어떤 곳에서도 쉽게 접근 가능하다. 특정 클래스에 대한 단일 개체 생성을 보장한다. 성능 개선, 다중 쓰레드 환경, 컴퓨터 자원을 소비하..

    [디자인 패턴] 개요

    개요 설계 재사용에 의해 높은 생산성과 유지보수가 용시한 설계를 가능하도록 한다. 유사 객체들을 적절한 클래스로 추상화하고 인터페이스와 상속 관계를 포하한 주요 클래스 사이의 관계를 발견하는 것은 어려움 → 검증된 설계 패턴을 재사용하는 것이 품질 좋은 설계를 가능하도록 함 GoF(Gang of Four) 기반 설계 패턴 분류 생성 구조 행위 Singleton Adapter Template Method Factory Method Birdge Observer Abstract Method Composite Interpreter Builder Decorator Chain of Responsibility Prototype Facade Command Flyweight Interator Proxy Mediator ..