728x90 Design pattern/GoF(인강편)10 [Design Pattern] Prototype Pattern Prototype Pattern 인스턴스를 복사하여 새로운 객체를 만드는 패턴이다. 인스턴스 생산 비용이 높을때 사용한다. 클래스로부터 인스턴스 생성이 어려울때 사용한다. 복사 붙여넣기 기능을 생각하면 이해하기 쉬울것 같다. Prototype Pattern 구조 Prototype Pattern 구현 Shap class Cloneable 은 기본적으로 제공되는 인터페이스이다. package patterns.prototype; public class Shape implements Cloneable { private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } } Circle class.. 2021. 11. 24. [Design Pattern] Singleton Pattern Singleton Pattern 우리가장 많이 듣고 접하는 패턴 중에 하나이다. 싱글턴 패턴은 요청의 숫자와 관계없이 한번 만들어둔 객체를 사용하게 된다. 안티패턴이라고 불린다. 이유는 다음과 같다. - 싱글톤을 위한 코드가 필요하다. - private 변수에 new 를 사용하기 떄문에 상속이 힘들다. - 클라이언트가 반드시 구체클래스를 의존해야 된다(getInstance 함수 사용) - Singleton은 이미 설정이 정해져 있다. Singleton Pattern 구조 Singleton Pattern 구현 Singleton class package patterns.singleton; public class Singleton { static private Singleton singleton = null;.. 2021. 11. 24. [Design Pattern] Factory Method Pattern Factory Method Pattern 객체를 생성을 전담하는 클래스를 만든다. 객체생성을 따로 함으로써 유연성을 가진다. 장점 OCP 를 지킬수 있다. - OCP 를 지킬수 있는 이유는 객체를 생성할때 new를 쓰게 되는데 요구사항이 바뀌거나 수정으 해야 하면 손이 많이 가게 된다. 즉 수정이 많아진다. - 하지만 기존 코드를 수정하지 않고 새로운 유형들 추가할수 있다. - new 는 팩토리메서드가 전담하기 떄문이다. Factory Method 구조 Creator: 추상 클래스 - 추상클래스로 만든이유는 확장성 때문이다. ConcreteCreator: Creator 를 구현한 구현체 - 실제 factoryMethod 를 통해 Product 를 생성해낸다. Product: 생성될 아이템의 Intrefa.. 2021. 11. 24. [Design Pattern] Template Method Pattern Template Method Pattern 동작 상의 알고리즘의 프로그램 뼈대를 정의하는 행위 디자인 패턴이다. 알고리즘의 구조를 변경하지 않고 알고리즘의 특정 단계들을 다시 정의할 수 있게 해준다 Template Method Pattern 구조 추상클래스로 템플릿 클래스를 만든다. templateMethod 안에는 method1 과 method2 를 수행하도록 한다. 구현부 즉 Contrete Class 에서 method1, metdod2 만 구현한다. Template Method Pattern 예제 구조 CoffeMaker 를 추상클래스로 만든다. makeCoffee 함수에는 수행할 알고리즘을 넣는다. 구현부에서 boil, selectBeanm selectCream, selectIce 만 구현한다. .. 2021. 11. 10. 이전 1 2 3 다음 728x90 반응형