728x90 Design pattern/GoF(인강편)10 [Design Pattern] Composite Pattern Composite pattern 컴포짓 패턴 이란? composite 패턴은 Composite(디렉토리)과 Leaf(파일)을 동일시해서 재귀적인 구조를 만들기 위한 설계 패턴이다. 어떻게 Composite(디렉토리)과 Leaf(파일)를 동일하게 여길까? component 객체를 상속받아 Composite 와 Leaf 를 상속받도록 한다. 그렇게 되면 다형성으로 Composite, Leaf 를 동일한 객체로 바라볼수 있다. 컴포짓 패턴 구조 Component : 최상의 객체 - 다형성을 위해 최상의 객체를 하나 둔다. Composite: 복합객체 - 폴더를 담당한다. - 그렇기 때문에 List 가 존재하고 add, remove, getChild 메서드가 존재한다. Leaf: 단일 객체 - 파일 객체를 담당.. 2022. 8. 15. [Design Pattern] Bridge Pattern Bridge Pattern 구현부에서 추상층을 분리하여 각자 독립적으로 변형할 수 있게 하는 패턴이다. 기능과 구현에 대해 두 개의 별도 클래스로 구현한다. 장점 변경사항이 생일때 기능 부분만 변경해주면 나머지 구조는 건드릴 필요가없다. 여러개의 기능들을 다양하게 구현할수 있다. 쉽게 변경가능하다. Bridge Pattern 구조 Abstraction: - 기능계층의 최상위 클래스 - 인터페이스로 되어 있다. - RefinedAbstraction 에서 실제 메소드를 만든다. RefinedAbstraction: - Abstraction 을 상속받아 실제 구현 메소드를 만든다. Implementor: - Abstraction의 기능을 구현하기 위한 인터페이스 부분이다. ConcreteImplementor: .. 2021. 12. 26. [Design Pattern] Abstract Factory Pattern Abstract Factory Pattern 추상팩토리 패턴은 연관된 객체들의 집합을 형성할때 이용하는 디자인 패턴이다. 하나의 클래스를 만들고 객체를 만드는 방식에 따라 기능을 독립적으로 구현하기 위해 사용하는 패턴이다. 구조보다 코드를 보면서 이해하는게 빠르다. Abstract Factory Pattern 구조 추상팩토리의 구조이다. 1. 아이템 A, B, C 의Interface 있다. - 실제 구현체는 Factory 를 통해 구현이 된다. 2. Factory 역시 Interface 가 있다. - 상황에 맞는 Factory 를 만들어 다른 객체를 만들어 낸다. Abstract Factory Pattern 예제 기본적으로 CarFactory 있다. - CarFactory 를 이용해 다른 자동차 공장을 .. 2021. 11. 29. [Design Pattern] Builder Pattern Builder Pattern 프로퍼티 즉 변수가 많을 경우 명확하게 값을 넣어 생성하게 해준다. 왜 써야 할까? 만약 변수가 100개 200개 정도 된다면 실수없이 데이터를 넣을수 있을까? 빌더 패턴을 쓰면 명확하게 값을 넣을수 있고 값이 없는 경우 default 값을 줄수도 있겠다. 하지만 비용이 들기 때문에 변수가 최소 4개 이상일때 효과적이다. Builder Pattern 예제 학생 클래스가 있다고 해보자 만약 변수가 100개 정도 된다면? 생성자에 값을 직접 넣거나 setter로 넣으면 복잡해지고 보기도 어렵다. Student Class package patterns.builder; public class Student { private String name; private int age; pri.. 2021. 11. 24. 이전 1 2 3 다음 728x90 반응형