전체태그 보기

#DesignPattern (7개의 포스트)

wltn3231

중재자 패턴

2019년 4월 22일0개의 댓글
복잡하게 연관되어 있는 객체들을 하나의 객체에서 처리해주는 패턴 * 각 객체들은 mediator객체를 제외한 다른 객체들을 알지 못함 * 객체들간의 상호작용이 복잡하여 서로간의 의존관계가 복잡할 때 * 하나의 객체가 다른 많은 객체를 참조하여 재사용하기 어려울 때 * mediator객체에서 상호작용을 모두 담당하기 때문에 구조가 복잡해져 유지보수가 힘들어질...
wltn3231

옵저버 패턴

2019년 4월 22일0개의 댓글
객체의 변경사항을 상대 클래스나 객체에 의존하지 않고 통보하고자 하는 경우에 사용 * 서로 상호작용하는 객체 사이의 결합을 느슨하게 해주어 두 객체 모두 독립적으로 재사용 가능하도록 함 * Subject : ConcreteObserver객체를 관리하는 요소 * Observer : 데이터의 변경을 통보 받는 인터페이스, ConcreteSubject의 데이터 ...
wltn3231

싱글톤 패턴

2019년 4월 21일0개의 댓글
특정 객체가 시스템내에서 오직 하나만 존재하는 것을 보장 * 어디에서든지 싱글톤 객체에 접근할 수 있도록 함 * static으로 선언함으로써 클래스 생성시 메모리 할당(컴파일 타임) * 다중 스레드 애플리케이션에서 코드를 수정해줘야 함
wltn3231

브리지 패턴

2019년 4월 21일0개의 댓글
추상과 구현을 분리하여 독립적으로 관리하도록 함 * 어댑터 패턴과 같이 사용되는 경우가 많음 - 구현부분 * Aggregation(집합관계)을 사용 * 추상을 나타내는 객체와 구현을 나타내는 객체가 동시에 존재하며, 추상을 나타내는 객체가 인스턴스화 될 때 주어진 구현이 알려져야 함 * 실행 시 두 객체의 연결이 바뀔 수 있기 때문에 유연한 관계를 가지고 ...
wltn3231

컴포지트 패턴

2019년 4월 21일0개의 댓글
전체-부분관계를 가지는 객체들을 표현하기위해 사용됨 * 사용자는 전체와 부분을 구분하지 않고 동일한 인터페이스를 사용 * Component : Leaf클래스와 Composite클래스에 공통인터페이스 정의 * Leaf : 구체적인 부분 클래스, 자식 객체를 가지지 않는 개별 객체 * Composite : 집합 클래스, 자식 객체를 Componet로서 가지고 ...
wltn3231

어댑터 패턴과 퍼싸드 패턴

2019년 4월 21일0개의 댓글
어댑터 패턴 * 클라이언트의 의도에 맞게 클래스의 인터페이스를 수정하여 시스템에 사용할 수 있도록 하는 패턴 * 사용하고자 하는 클래스의 인터페이스가 시스템에 적합하지 않기 때문에 이를 변경해주는 Adapter클래스(Wrapper)를 생성 * 레거시 시스템을 사용하고자 할 때 많이 적용 * 클래스 어댑터와 객체 어댑터가 존재 * 클래스 어댑터 : 어댑터가 ...
wltn3231

객체지향 개발 원칙 : SOLID

2019년 4월 21일0개의 댓글
SRP, 단일 책임의 원칙 * 어떤 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 함 * 하나의 클래스는 하나의 책임만을 가지고 있어야 함 - OCP, 개방 폐쇄의 원칙 * 프로그램의 확장에 있어서는 개방되어 있어야 하지만, 변경에 있어서는 닫혀있어야 함 * 프로그램에 새로운 기능이 추가될 때, 기존의 코드가 수정되지 않아야 함 - LSP, ...