# 디자인 패턴 ### 브릿지 패턴 기능과 구현에 대해 두개를 별도의 클래스로 구현하는 방법(기능 : protocal, 구현: class or struct) 즉 프로토콜에 기능만 정의해두고 구현부분을 다르게 한다. ### Decorator 패턴 잘 안쓴다... 아마 pop로 다중 채택이 되기때문에 굳이 이러한 방법을 쓰진않는다. ### Facade 패턴 어떠한 기능을 사용할때 여러 인스턴스를 사용하거나 복잡하게 구현을 해야될시 Facade 패턴 내부에서 다 처리를 하여 외부에서 간단하게 facade.메서드로 실행을 하게 해주는 방법 ### Proxy 패턴 할수 있는만큼 해주고 나머지 일을 넘겨주는 패턴 즉 클라이언트 -> 프록시 -> 실제 처리 객체 여기서 프록시는 실제 처리 객체에 일부분을 처리하여 넘겨줄수도 있고 뭐 하여튼 여러가지이다. 🌳 Proxy Pattern의 장단점 장점 realSubject가 메모리가 큰 인스턴스 일 경우 해당 인스턴스를 생성하는 시점을 정말로 필요한 시점에 지연시킬 수 있습니다. Proxy는 realSubject가 준비되지 않았거나, 사용할 수 없는 경우에도 동작 합니다. 개방 폐쇄 원칙을 지켜 RealSubject나, 클라이언트를 변경하지 않고, 새로운 프록시를 도입할 수 있습니다. 단점 Proxy 클래스를 도입해야 함으로 코드가 복잡해 집니다. RealSubject의 응답이 지연될 수 있습니다. ### Composite 패턴