디자인패턴

옵저버 패턴(Observer Pattern)변화가 일어 났을 때, 미리 등록된 다른 클래스에 통보해주는 패턴을 구현하는 것입니다.일대다(one-to-many) 의존성을 가지며, 분산 이벤트 핸들링 시스템을 구현하는 데 사용됩니다.ex) event listener 옵저버 패턴 흐름1. 일 대 다 관계로 구성2. 관찰 대상의 상태가 변경되면 옵저버 한테 통보3. 통보 받은 값을 바꿀 수 있고, 삭제 하는 등의 적절한 대응을 합니다.4. 일 대 다 관계의 그룹에서 추가/삭제 될 수 있으며 그로 인하여 정보를 전달 받거나 받을 수 없게 합니다.옵저버 패턴 특징1. 대상 객체의 상태가 변경될 때마다 다른 객체의 동작을 트리거해야 할때2. 앱이 한정된 시간, 특정한 케이스에만 다른 객체를 관찰해야 할 때3. 한 객..
팩토리 메소드 패턴(Factory method pattern)생성 패턴 중 하나로 객체를 생성할 때 어떤 클래스의 인스턴스를 만들지 서브 클래스에서 결정합니다.즉, 인스턴스 생성을 서브 클래스에게 위임합니다.부모(상위) 클래스 코드에 구체 클래스 이름을 감추기 위한 방법으로도 사용합니다.부모 추상 클래스는 인터페이스에만 의존하고 실제로 어떤 구현 클래스를 호출할 지는 서브 클래스에서 구현합니다.이렇게 하면 새로운 구현 클래스가 추가되어도 기존 Factory 코드의 수정없이 새로운 Factory를 추가하면 됩니다. 팩토리 메소드 패턴의 구조팩토리 메소드 패턴 코드Product 인터페이스/** * 물건 A의 클래스 */public class CreateProductA implements Product{ ..
Proxy Pattern프록시 패턴은 객체 간의 간접적인 접근을 가능하게 하는 구조를 제공하는 패턴입니다.Proxy 클래스를 통해 대신 전달하는 형태로 설계되며, 객체를 바로 호출하는 것이 아닌 Proxy를 호출하는 패턴입니다.그러므로 실제 Client는 Proxy로 부터 결과를 받습니다.Proxy의 효과로 캐싱(Caching), 보안(Aop), 데이터 유효성, 지연 초기화, 로깅, 원격객체 등이 있습니다.객체지향 설계원칙 중 개방폐쇄의 원칙(OCP)과 의존 역전 원칙(DIP)을 따릅니다. Proxy Pattern 장단점장점보안성 향상유연성 향상성능 향상 단점코드 복잡성성능 저하Proxy Pattern 구조프록시와 객체는 동일한 인터페이스를 가지고 있으며 이를 통해 다른 인터페이스와 완전히 호환되도록 바..
어댑터 패턴 (Adapter Pattern): 클래스와 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴  호환성이 없는 인터페이스때문에 함께 동작할수 없는 클래스들을 연관관계로 연결하여 사용하는 패턴  객체지향 프로그래밍의 5가지 설계원칙 중 개방 폐쇄의 원칙(OCP)을 잘 지킨 패턴입니다. 어댑터 패턴 적용 사례1. 외부 라이브러리(Auth, Payment, Media…)로그인 서비스나, 결제 시스템, 비디오 플레이어 같은 라이브러리를 사용중 일 때, 라이브러리가 더 이상 현재 시스템 요구사항에 맞지 않아서 코드를 바꾸던지 업데이트를 해야 할 때가 있습니다.이런 외부 라이브러리들은 종종 class 나 interface에 직접 접근할 수 없는 상황이 생깁니다.그럴 경우 중간에 adapter..
defxyj
'디자인패턴' 태그의 글 목록