Free Lines Arrow
본문 바로가기
728x90

Design pattern15

[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.
[Design Pattern] Prototype Pattern Prototype Pattern 인스턴스를 복사하여 새로운 객체를 만드는 패턴이다. 인스턴스 생산 비용이 높을때 사용한다. 클래스로부터 인스턴스 생성이 어려울때 사용한다. 복사 붙여넣기 기능을 생각하면 이해하기 쉬울것 같다. Prototype Pattern 구조 Prototype Pattern 구현 Shap class Cloneable 은 기본적으로 제공되는 인터페이스이다. package patterns.prototype; public class Shape implements Cloneable { private String id; public String getId() { return id; } public void setId(String id) { this.id = id; } } Circle class.. 2021. 11. 24.
728x90
반응형