Free Lines Arrow
본문 바로가기
728x90

Design pattern15

[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.
[Design Pattern] Adapter Pattern Adapter pattern 어댑터 패턴은 호환성이 없는 인터페이스 때문에 동작할수 없는 클래스들이 함께 동작하게 해준다. 아래 그림을 보면 제공된 라이브러리가 호환이 안될경우 어댑터 패턴을 사용하면된다. Adapter pattern 구조 가장 널리 알려진 Adapter의 구조이다. Client: 실제 기능을 사용하는 주체 Target: Adapter pattern 예제 MathAdapter 를 인터페이스로 만든다. MathAdapterImpl 로 구현한뒤 Math 를 가져다 사용한다. 이렇게 하는 이유는 다음과 같다. - 제공 되는 Math 는 입출력 타입이 double 이다. - 하지만 입력을 float 을 사용해야 된다. 현재는 간단하지만 로직이 복잡해 지면 어댑터를 사용해야 될수 밖에 없다. Sp.. 2021. 10. 28.
728x90
반응형