디자인패턴

Abstract Factory? - 추상 팩토리 : 서로 관련이 있는 객체를 묶은 다음 팩토리 클래스(Object)를 만들어서, 조건에 따라 객체를 생성하게 하는 디자인 패턴 * 주로 비슷한 특성을 가지는 객체를 생성할 때, 어떤 객체를 생성할 것인지 판별하는 로직을 Factory Class에게 책임을 위임하여 수행하게 된다! 예를 들어, Rectangle(직사각형) Circle(원) 이라는 객체들은.. Shape(도형) 이라는 공통적인 부분이 존재한다! 이런 비슷한 객체들을 Shape Factory가 객체를 생성하게 위임하는 것이다!!! 실제 코드 다음과 같은 인터페이스가 있다고 해보자. package designpattern.abstractfactory; interface Shape { String ..
Visitor Pattern? - 방문자 패턴(Visitor Pattern) : 알고리즘을 객체 구조에서 분리시키는 디자인 패턴이다. - 분리를 하게 되면, 구조를 수정하지 않고 새로운 동작을 기존 객체에 추가할 수 있다!! -> 개방 폐쇄 원칙을 적용하게 된다! Why Visitor Pattern? - 데이터 구조와 연산을 분리 하여 인스턴스 필드를 변경하지 않고 새로운 연산을 추가할 수 있기 때문이다! - 한마디로, domain에게 View를 위한 책임은 Visitor에게 위임하기 위해서 사용된다! - 새로운 연산을 더 만들고 싶다면, 새로운 방문자를 추가하면 된다! 패턴 적용 Car Interface 구현 * Car Interface를 구현해보자! package visitor.domain; impo..
Strategy Pattern? - 전략 패턴(Strategy Pattern) : 알고리즘군을 정의하고 각각을 캡슐화해서 실행중에 알고리즘을 선택할 수 있는 행위 패턴이다. * 한마디로, 행위 자체를 인터페이스로 선언하고 각각의 알고리즘은 클래스로 상속받아서 오버라이딩 하는 방식이다. * 조금 더 쉽게 말하자면, 행동 이름자체는 똑같지만, 내용을 다르게 하기 위해 사용한다!! Why 전략 패턴? * 알고리즘 자체가 랜덤(Random) 로직이 포함될 경우, 테스트가 불가능해지는 현상이 있다. -> 이를 해결하기 위해, 정적인 로직을 갖는 알고리즘과 랜덤 로직을 갖는 알고리즘을 분리하여 테스트한다! * 위 예시는 수많은 사례중 하나이고, 많은 인터넷 블로그들은 Fly 라는 인터페이스를 주로 예시로 하더라!!..
Singleton? 왜 디자인 패턴을 쓰는지는 링크를 참조해주세요! - Singleton(싱글톤) 패턴 : Application에서 Instance를 하나만 만들어 사용하기 위한 패턴이다. - 외부에서 객체를 생성하는 것을 막기 위한 패턴 - Use Case는 DB에 연결할 때, jdbc 라이브러리를 통해서 연결하는데 중복 Connection은 피하기 위해서 사용 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 package pattern; public class Singleton { private static Singleton instance; private Singleton() { } public static Singleton getInstance() { if (instance ..
huisam
'디자인패턴' 태그의 글 목록 (2 Page)