본문 바로가기
반응형

Design Pattern4

[Design Pattern] 컴포지트 패턴 - Composite Pattern 컴포지트 패턴 객체들의 관계를 트리 구조로 구성하여 부분-전체 계층을 표현하는 패턴 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 한다. - Component 컴포지션의 모든 개체에 대한 기본 인터페이스 인터페이스 또는 추상 클래스 여야 한다. - Leaf 기본 구성 요소의 기본 동작을 구현한다. 다른 객체에 대한 참조는 포함되어 있지 않는다. 부분 클래스 - Composite 전체 클래스 Leaf를 요소로 가짐. 복수개의 Leaf, 복수개의 Composite객체를 부분으로 가질 수 있다. 장점 객체들이 모두 같은 타입으로 취급되기 때문에 새로운 클래스 추가가 용이하다. 단일 객체, 집합 객체 구분하지 않고 코드 작성이 가능하다. 단점 설계를 일반화 시켜 객체간의 구분, 제약이 힘들다. 언제 사.. 2021. 6. 18.
[Design Pattern] Singleton 패턴 개념 - 애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고(static) 그 메모리에 인스턴스를 하나만 만들어질 수 있도록해서 사용하는 디자인패턴 - 인스턴스가 프로그램 내에서 오직 하나만 생성되는 것을 보장하고, 프로그램 어디에서든 이 인스턴스에 접근할 수 있도록 하는 패턴 * 인스턴스가 사용될 때 똑같은 인스턴스를 여러 개 만드는 것이 아니라, 기존에 생성했던 동일한 인스턴스를 사용하게끔 하는 것 사용하는 이유 1. 메모리 낭비 방지 - 고정된 메모리 영역을 얻으면서 한번의 new로 인스턴스를 사용하기 때문에 메모리 낭비를 방지할 수 있음. 2. 데이터 공유 용이 - 전역 인스턴스 이기 때문에 다른 클래스들의 인스턴스들이 데이터를 공유하기 쉬움. 3. 성능 우수 - DBCP(Dat.. 2019. 4. 22.
팩토리 패턴 팩토리 패턴 (Factory pattern) : 객체를 생성하기 위한 인터페이스를 정의하는데, 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정하게 만듬. 팩토리 메소드 패턴을 이용하면 클래스의 인스턴스(객체)를 만드는 일을 서브클래스에게 맡기는 것. * 객체를 만들어 내는 공장을 만드는 패턴 new -> 구상 클래스의 인스턴스를 만드는 것 * 인터페이스에 맞춰서 코딩을 하면 시스템에서 일어날 수 있는 여러 변화를 이겨낼 수 있다. 왜냐하면, 다형성 덕분에 어떤 클래스든 특정 인터페이스만 구현하면 사용할 수 있기 때문이다. * 구상 클래스를 많이 사용하면 새로운 구상 클래스가 추가될 때마다 코드를 고쳐야 하기 때문에, 많은 문제가 생길 수 있다. * Simple Factory는 정확하게는 패턴이 ㅇ추.. 2019. 3. 18.
옵져버패턴 * 옵져버 패턴 : JDK에서 가장 많이 쓰이는 패턴 subject - observer 한 객체의 상태가 바뀌면, 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는 방식 일대다 의존성을 정의. * Observer는 Subject에 의존 * 구현방법 Subject인터페이스와 Observer인터페이스가 들어있는 클래스 디자인 바탕으로 함. 느슨한 결합 (Loose Coupling)의 위력 * 디자인 원칙 : 서로 상호작용을 하는 객체 사이에서는 가능하면 느슨하게 결합하는 디자인을 사용해야함. * 데코레이터 패턴 : 객체에 추가적인 요건을 동적으로 첨가한다. 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다. * 원래의 클래스 코드를 전혀 바꾸지 않고도 만.. 2019. 3. 12.
반응형