본문으로 바로가기

정리안된 디자인패턴

category 카테고리 없음 2017. 9. 4. 21:17
    반응형

    스트래티지 패턴 (strategy pattern)

    : 교환 가능한 행동을 캡슐화하고 위임(Delegate)을 통해서 어떤 행동을 사용할지 결정한다. 스프링에서 생각해보면, 서비스 인터페이스에 @Autowired로 DI를 통해 사용한 것과 일치한다. 서비스는 인터페이스를 통해서 로직을 구성할 수 있으면 실질적인 구현체는 몰라도 된다. 스프링의 어플리케이션 컨텍스트가 구현체를 주입해주기 때문이다. 이를 통해서 객체간 결합이 느슨해질 수 있다.


    플라이웨이트 패턴 (flyweight pattern)

    : 어떤 클래스의 인스턴스 한 개만가지고 여러 개의 "가상 인스턴스"를 제공하고 싶을 때

    : String.valueOf()


    어댑터 패턴 (adaptor pattern)

    : 객체를 감싸서 다른 인터페이스를 제공한다.

    : 기존의 코드를 재사용과 새로운 요구사항을 반영할 때 사용한다.


    프로토타입 패턴 (prototype pattern)

    : 어떤 클래스의 인스턴스를 만드는 것이 자원/시간을 많이 잡아먹거나 복잡한 경우

    : Clonnable 인터페이스를 구현한다.


    이터레이터 패턴 (iterator pattern)

    : 컬렉션이어떤 식으로 구현되었는지 드러내진 않으면서도 컬렉션 내에 있는 모든 객체에 대해 반복 작업을 처리할 수 있게 한다.


    컴파운드 패턴 (compound pattern)

    : 반복적으로 생길 수 있는 일반적인 문제를 해결하기 위한 용도로 두 개 이상의 패턴을 결합해서 사용하는 것


    인터프리터 패턴 (Interpreter pattern)

    : 어떤 언어에 대한 인터프리터를 만들 때



    참조사이트

    : http://hyeonstorage.tistory.com/99 [개발이 하고 싶어요]

    반응형