JAVA/Java Design Patterns
-
싱글턴 패턴( Singleton Pattern ) 과 static - Java 디자인 패턴JAVA/Java Design Patterns 2020. 4. 28. 20:58
싱글톤 패턴이란? 싱글턴 패턴은 일부 사람들이 static은 전역 변수와 같아 보이고 객체 지향이 아니라는 주장에 이러한 비판을 해결하고자 나왔다고 볼 수 있다. 애플리케이션이 시작될 때, 어떤 클래스가 최초 한 번만 메모리를 할당(static)하고 해당 메모리에 인스턴스를 만들어 사용하고 공유하는 제한하는 패턴 즉, 싱글톤 패턴은 '하나'의 인스턴스만 생성하여 사용하고 공유하는 디자인 패턴이다. 인스턴스가 필요할 때, 똑같은 인스턴스를 만들지 않고 기존의 인스턴스를 활용하는 것! 다음과 같은 조건을 충족하는 개체에 적합하다. 1. 프로그램 실행 중에 최대 하나만 있어야 할 때 2. 이 객체에 전역적인 접근이 가능해야 할때 좋은 예시는 Logger 가 있겠다. Logger는 싱글톤으로 만들어서 error..
-
스트래티지 패턴 ( Strategy pattern )JAVA/Java Design Patterns 2020. 4. 20. 22:01
선행학습 2가지 1. 인터페이스 2. 위임 1. 인터페이스 우선 인터페이스는 기능에 대한 선언과 구현을 분리하며 기능을 사용하는 통로를 분리하는 것. 2. 위임 다음과 같이 객체의 기능을 빌려서 사용하는 것을 위임한다 라고 표현한다. 스트레티지 패턴이란? -여러 알고리즘을 하나의 추상적인 접근점(인터페이스)을 만들어 접근 점에서 서로 교환 가능하도록 하는 패턴. 클라이언트는 전략을 하나 가지고 있고 A, B, C 중 하나를 세팅할 수 있다. 하나의 Weapon을 통해서 Knife와 Sword를 바꿔 끼는 상황을 구현해보자. Person 클래스는 Weapon이라는 추상적인 접근점(인터페이스) 을 만들어 접근 점에서 서로 교환 가능(Knife or Sword) 하도록 하는 패턴이 됐다. Ax라는 무기가 추가..
-
템플릿 메소드 패턴JAVA/Java Design Patterns 2020. 2. 22. 18:26
Template Method 패턴 개념 어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화 해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴 즉, 전체적으로는 동일하면서 부분적으로는 다른 구문으로 구성된 메서드의 코드 중복을 최소화 할 때 유용하다. 다른 관점에서 보면 동일한 기능을 상위 클래스에서 정의하면서 확장/변화가 필요한 부분만 서브 클래스에서 구현할 수 있도록 한다. 예를 들어, 전체적인 알고리즘은 상위 클래스에서 구현하면서 다른 부분은 하위 클래스에서 구현할 수 있도록 함으로써 전체적인 알고리즘 코드를 재사용하는 데 유용하도록 한다 조건 클래스는 추상(abstract)로 만든다. 단계를 진행하는 메소드는 수정이 불가능하도록 final 키워드를 추가한다. ..