자바 디자인패턴(6)
-
[디자인패턴] 원형(프로토타입) 패턴(prototype pattern)
원형(프로토타입) 패턴(prototype pattern) 객체에 의해 생성될 객체의 타입이 결정되는 생산 디자인 패턴미리 만들어진 개체를 복사하여 개체를 생성하는 패턴 설명 객체 생성과 관련된 패턴들은 서로 영역이 겹치는 면이 있다. 프로토타입 패턴과 추상 팩토리 패턴 중 어느 하나가 적용될 수 있는 경우가 있다. 추상 팩토리 패턴이 프로토타입들의 집합을 갖고있다가, 클론(clone)한 뒤 프로덕트(product) 객체를 반환할 수도 있다.추상 팩토리 패턴, 빌더 패턴, 프로토타입 패턴은 각 구현에 있어서 싱글턴 패턴을 활용할 수 있다.다시 말해 추상 팩토리 클래스는 종종 팩토리 메소드과 함께 구현하거나, 프로토타입을 이용해서 구현되기도 한다.보통 설계는 처음에는 팩토리 메소드로 출발한다. 다음에 설계자..
2016.11.15 -
[디자인패턴] 싱글톤패턴(Singleton pattern)
싱글톤패턴(Singleton pattern) 하나의 인스턴스 만을 생성하도록 구현하는 패턴 작성형식 코드1 public class Singleton { //단일 인스턴스를 사용하기 위한 전역변수 static Singleton instance; //기본생성자 private Singleton(){ } //단일 인스턴스르 반환하기 위한 메서드 public static Singleton getInstance(){ if(instance == null){ instance = new Singleton(); } return instance; } } 코드2 public class SingletonExam { public static void main(String[] args) { //기본생성자 호출 불가 //Single..
2016.11.15 -
[디자인패턴] 팩토리 메서드 패턴(Factory method pattern)
팩토리 메서드 패턴(Factory method pattern) 정의기반 클래스에 알려지지 않은 구체 클래스를 생성하는 패턴파생 클래스가 어떤 객체를 생성 할 지를 결정하도록 하는 패턴기반 클래스 코드에 구체 클래스 이름을 감추기 위한 방법으로 사용함 내용Factory Method라는 패턴 이름이 적절하지 못한데, 이름으로 인해 객체를 생성하는 메소드를 Factory method라 오해하는 개발자가 많이 있다(Allen Holub의 말을 인용.) 이런 생성 메소드가 모두 Factory method 패턴을 사용하는 것은 아니다. Template Method의 생성 패턴 버전으로 볼 수 있는데 Template Method를 알지 못한다면 그 패턴을 먼저 이해하는 것이 Factory Method를 이해하기 수월..
2016.11.10 -
[디자인패턴] 템플릿 메서드 패턴(Template Method Pattern)
템플릿 메서드 패턴 정의상위 클래스에서 처리의 흐름을 제어하며, 하위 클래스에서 처리의내용을 구체화 한다.여러 클래스에 공통되는 사항은 상위 추상 클래스에서 구현하고,각각의 상세부분은 하위 클래스에서 구현한다. 코드의 중복을 줄이고, Refactoring에 유리한 패턴으로 상속을통한 확장 개발 방법으로써 전략패턴(StrategyPattern)과 함께 가장 많이 사용 되는 패턴중 한이다. 내용- 고려사항Template Method는 위험성을 어느 정도 내포하고 있습니다. 바로 전체적인 프로세스가 바뀌는 것입니다. 상위 클래스에서 변동이 일어날 경우 하위 클래스가 안전하리라는 보장은 할 수 없습니다. 상위 클래스에 abstract method가 하나만 추가되어도 모든 하위 클래스는 변경이 불가피합니다. 나중..
2016.11.10 -
[디자인패턴] 어댑터 패턴(Adater patterns)
어댑터 패턴(Adater patterns) 정의한 클래스의 인터페이스를 클라이언트에서 사용하고자 하는 다른인터페이스로 변환합니다.어댑터를 이용하면 인터페이스 호환성 문제에 같이 쓸 수 없는클래스들을 연결해서 사용 할 수 있습니다. 내용 -신규 클래스에 이전 클래스를 연동해서 사용이 가능하게 할 수 있다. 예) 110V 전자제품을 220V로 변환 해주는 어댑터를 꼽아 사용하는 형태와 유사하다. 형식을 맞추어 사용하도록 하는 구조기존 객체를 원하는 형식으로 바꾸어(adapt) 사용하는 방식기존 객체의 인터페이스 호환성을 맞춰줌클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴클래스 어댑터(상속을 이용) + 인스턴스 어댑터(위임을 이용) - 어댑터 패턴을 구현하는 방식에는 두가지 형태가 존..
2016.11.09 -
[디자인패턴] Strategy pattern(스트래티지 / 전략 패턴)
Strategy pattern(스트래티지 / 전략 패턴) 정의알고리즘 군을 정의하고 각각을 캡슐화하여 교환해서 사용 할 수 있도록 만든다.스트래티지를 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다. 즉, 하나의 결과를 만드는 목적은 동일하나 그 목적을 달성할 수 있는방법이 여러가지가 존재할 경우 기본이 되는 템플릿 메서드패턴(Templat Method pattern)과 함께 가장 많이 사용되는 패턴. 내용일반적으로는 객체의 메서드에 대한 알고리즘이 미리 정해져있고, 정해진 알고리즘에 따라 어플리케이션 수행중에 그 메서드가 불리면 정해진 알고리즘이 불리게 된다. 전략패턴 에서는 이 알고리즘이 여러개가 설정되어있고, 수행중에 이 알고리즘 중에 하나가 선택되어 가변 적으로 수..
2016.11.08