본문 바로가기

Proxy Pattern(대리자 패턴) Proxy Pattern(대리자 패턴): 처리 과정이 복잡하거나, 시스템의 리소스를 많이 필요로 하거나 하는 객체가 있을 때,대리자를 두어 간단한 일은 대리자가 처리하고실제 해당하는 객체가 필요할 때 생성하여 처리. ///Virtual Proxy Proxy Pattern의 종류1 Remote Proxy : 원격 객체에 대한 로컬의 대리자 - RMI(Remote Method Invoke) - RPC(Remote 프로시저 Call)2 Virtual Proxy : 많은 비용을 요구하는 객체를 생성하는 경우 프로그램의 로딩 속도가 느려지므로, 대리자를 두어 진짜 필요할 때 생성하는 기법.3 Protection Proxy : 보호가 요구되는 객체에 접근을 통제하는 대리자 Collections.unmodifiedC.. 더보기
Flyweight pattern Flyweight pattern: 속성과 동일한 객체가 다수 생성된다면하나의 객체를 공유해서 사용하자. 방법1. 팩토리를 통한 경량 패턴 구현=> 이건 싱글톤을 사용하는데 이방법 보다는 다른 방법이 낫다 방법2. 정적 팩토리 메소드를 이용한경량 패턴Wrapper Class : Integer, Long, Boolvalues.add(10); -> values.add(Integer.valueOf(10)) Flyweight 패턴에서 주의할 점-> Immutable Object로 제공되어야 한다. Function -> Pure Functionf(x1, x2) -> y: 수학적 함수의 형태를 프로그래밍 적으로 구현하는 것!Pure Function Java8 - 인터페이스를 이용한 경량 패턴. 더보기
브릿지(Bridge) 패턴 사용자가 새로운 기능을 요구하였을 때 인터페이스는 쉽게 변경 될 수 없다.(인터페이스가 변경되면, 다른 자식 클래스도 깨진다.) 브릿지(Bridge) 패턴 - C++에서는 브릿지 패턴을 핌플 이디엄이라고 한다C++ : pImpl idiom(Pointer to Implementation): 사용자가 구현부를 직접 사용하게 하지 말고, 중간층(Bridge)를 도입하면 변화에 쉽게 대응할 수 있다.- 구현부와 인터페이스(추상부, 사용자가 사용하는 클래스)를 분리해서상호 독립적인 변경 확장이 편리하게 한다.- 구현부의 변화 없이 인터페이스를 변경하고, 인터페이스의 변경 없이,구현부를 변경할 수 있다. 브리지패턴은 라이브러리 설계할 때 한번쯤은 고려해 볼 만 하다. 더보기