반응형 Spring/DesighPattern13 GOF패턴-BuilderPattern-1(생성) 복잡한 단계가 필요한 인스턴스생성 을 빌더 패턴을 통해서 구현 복잡한 단계를 거쳐야 생성되는 객체의 구현을 서브클래스에게 넘겨주는패턴이다 >> 템플릿메소드랑 비슷한느낌이다 팩토리가 있고 / 설계도를 넘겨주고 / 만들어준다음/ 설계도대로 만들어줌 factory == Director Blueprint(설계도) AbstractBuilder LgGramBlueprint > ConcreateBulder 메인 package Builder1; public class Main { public static void main(String[] args) { ComputerFactory factory = new ComputerFactory();// 생성을 다른 객체에 넘김 factory.setBlueprint(new LgGr.. 2023. 2. 23. GOF패턴 -Prototype Pattern(생성) 생산 비용이 높은 인스턴스를 복사를 통해서 쉽게 생성 할 수 있도록 하는 패턴 왜 비싸 ??? - 종류가 너무 많아서 클래스로 정리되지 않는다 - 클래스로부터 인스턴스 생성이 어렵다. 프로토타입 패턴은 원본 객체를 새로운 객체에 복사하여 필요에 따라 수정하는 메커니즘을 제공한다. package Prototype; public class Circle extends Shape { private int x,y,r; public Circle(int x, int y, int r) { this.x = x; this.y = y; this.r = r; } public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { .. 2023. 2. 22. GOF패턴-SingleTon(생성) 객체 : 속성과 기능을 갖춘것 클래스: 속성과 기능을 정의한것 인스턴스 : 속성과 기능을 가진것중 실제하는것 자동차 (객체) 설계도 (클래스) 공장에서 만들어서 나온 자동차(인스턴스) SingleTon: 하나만 생성해야할 객체를 위한 패턴 (Instance 생성) package SingleTon; public class SystemSpeaker { static private SystemSpeaker instance; // 하나만 있어야하는 스피커 private int volume; private SystemSpeaker() { volume = 5; // 다른데서 생성 못하게 하기 위해서 private } public static SystemSpeaker getInstance() { // getinstan.. 2023. 2. 22. GOF패턴-FactoryMethod(생성) FactoryMethod : 객체를 생성하기 위한 인터페이스를 정의하고, 어떤 클래스의 인스턴스를 생성할지에 대한 처리는 서브클래스가 결정하는 디자인 패턴 객체 생성 처리를 서브 클래스로 분리 해 처리하도록 캡슐화하는 패턴 객체의 생성 코드를 별도 분리함으로써 객체 생성의 변화에 대비하는 데 유용함 역할이 수행하는 작업 Product 팩토리 메서드로 생성될 객체의 공통 인터페이스 ConcreteProduct = Default 구체적으로 객체가 생성되는 클래스 Creator 팩토리 메서드를 갖는 클래스 ConcreteCreator 팩토리 메서드를 구현하는 클래스로 ConcreteProduct 객체를 생성 = Default https://gmlwjd9405.github.io/2018/08/07/factory.. 2023. 2. 21. GOF패턴-Template Method(행동) temlate(템플릿) 란 모양자 알고리즘의 구조를 메소드의 정의하고 하위 클래스에서 알고리즘의 구조의 변경없이 알고리즘을 재정의 하는 패턴 알고리즘이 단계별로 나누어 지거나, 같은 역할을 하는 메소드이지만 여러곳에서 다른형태로 사용이 필요한 경우 유용한 패턴이다. 언제 쓰냐? - 구현하려는 알고리즘이 일정한 프로세스가 있다. - 구현하려는 알고리즘의 변경 가능성일 클 때 사용 방법? - 알고리즘을 여러단계로 나눈다 - 나눠진 알고리즘을 메소드로 선언한다 - 알고리즘 수행할 템플릿 메소드를 만든다. - 하위 클래스에서 나눠진 메소드들을 구현한다. 템플릿 메소드 package Template; public abstract class AbstGameConnectHelper{ protected abstract.. 2023. 2. 21. GOF패턴- Adapter Pattern (구조) Adapter 란 부가기구 이다 . 어댑터 패턴(Adapter pattern)은 클래스의 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴으로, 호환성이 없는 인터페이스 때문에 함께 동작할 수 없는 클래스들이 함께 작동하도록 해준다. package Adapter; public interface Adapter { public Float twiceOf(Float f); public Float halfOf(Float f); } package Adapter; public class Math { // 요구사항이 float 이라 안됨 public static double twotime(double num) { return num*2; } public static double half(double num.. 2023. 2. 21. 이전 1 2 3 다음 반응형