[Design Pattern] 구조 패턴

rara_kim·2022년 8월 31일
0

Java

목록 보기
25/39

구조패턴 - 어댑터(Adaptor)

어댑터 패턴(Adapter pattern)은 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴으로, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해준다.

  • A의 기능을 B의 기능으로 연결시킬 때, 혹은 두개의 인터페이스 사이의 연결고리를 만들고 싶을 때 사용한다.

GitHub: 어댑터 패턴 구현 코드

구조패턴 - 파사드(Facade)

  • 복잡한 서브시스템에 인터페이스를 단순하게 구성하고자 할 때 사용한다.

  • 어댑터 패턴은 두 시스템을 어떻게 연결하는 가에 관심이 있었다면, 파사드 패턴은 시스템간에 결합도를 줄이고자 할 때 사용한다.

  • 서브시스템을 계층화 시키고자 할 때 사용한다.

  • 클라이언트에게 단순한 메소드doSomething()를 제공하고 뒤쪽의 복잡한 상호작용은 숨긴다.

GitHub: 파사드 패턴 구현 코드

구조패턴 - 데코레이터(Decorator)

  • 기존 객체의 수정없이 새로운 기능을 추가하고 싶을 때 사용한다.

GitHub: 데코레이터 패턴 구현 코드

구조패턴 - 프록시(Proxy)

  • 특정 객체에 접근을 제어하고 싶을 때 사용한다.
    • 객체를 실제 사용하기 전까지 초기화를 미루고 싶을때(Lazy init)
    • 접근 권한을 체크할 때

GitHub: 프록시 패턴 구현 코드

💡어댑터 패턴(Adaptor), 데코레이터 패턴(Decorator), 프록시 패턴(Proxy)의 코드가 상당히 유사하지만, 각자 사용목적이 다르기 때문에 상황에 맞게 골라 사용하면 된다.


profile
느리더라도 꾸준하게

0개의 댓글