Java/Design Pattern

더보기 객체의 상태 변화를 관찰하는 옵저버 들의 목록을 객체에 등록 상태 변화가 있을 때마다 메서드를 통해 객체가 직접 각 옵저버에게 통지하도록 한다 - 주로 분산 이벤트 핸들링 시스템을 구현하는데 사용 객체의 상태가 변할 때 연관된 객체들에게 알림을 보내는 패턴 장점 실시간으로 한 객체의 변경사항을 다른 객체에 전파할 수 있다. 느슨한 결합으로 시스템이 유연하고 객체간의 의존성 제거 가능 public class Observer { public String msg; public void receive(String msg){ System.out.println(this.msg + "에서 메시지를 받음 : " + msg); } } public class User1 extends Observer{ public ..
- 생성패턴의 한 종류로 서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공 아래의 두 가지 종류의 클래스로 나눈다. 복잡한 객체를 생성하는 방법을 정의하는 클래스 표현하는 방법을 정의하는 클래스로 분리 장점 인스턴스를 생성할 때 인자를 선택적으로 가독성 좋게 넘길 수 있다. 인자의 순서에 상관이 없고, 불필요한 생성자를 만들지 않는다. public class Computer { private int serialNumber; private String model; private String vender; private String cpu; private int ram; private int disk; private String graphicCard; private Computer(int ser..
부분과 전체의 계층을 표현하기 위한 객체들을 모아서 트리 구조로 구성하는 패턴 사용자에게 개별객체와복합 객체를 모두 동일하게 다룰 수 있도록 함 예제 : [Design Pattern] 컴퍼지트 패턴이란 - Heee's Development Blog (gmlwjd9405.github.io) all4land_junior/Week01/src/designPattern/composite at main · keartt/all4land_junior (github.com)
객체를 생성하는데 비용? 시간이 많이 들고, 비슷한 객체가 이미 있는 경우 사용되는 패턴 원본 객체를 새로운 객체에 복사하여 필요에 따라 수정함 clone 메소드를 사용함 생성 패턴 clone 메소드를 사용 -> 생성하고자 하는 객체에 clone 에 대한 Override 필요 반드시 생성하고자 하는 객체의 클래스에 clone 메소드가 정의되어 있어야 함 [디자인패턴] 프로토타입패턴(Prototype Pattern) (velog.io) package designPattern.prototype; import java.util.ArrayList; import java.util.List; public class Employees implements Cloneable { private List empList; p..
작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하는 구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴 전체적으로는 동일하면서 부분적으로는 다른 구문으로 구성된 메서드의 코드 중복을 최소화 할 때 유용하다. 다른 관점에서 보면 동일한 기능을 상위 클래스에서 정의하면서 확장/변화가 필요한 부분만 서브 클래스에서 구현할 수 있도록 한다. - 상위 클래스에서는 공통적, 하위 클래스에서는 다양하게 코딩을 한다. 즉, 확장적이고 공통적인건 상위 클래스에서 정의하고 그렇지 않은 것은 imterface로 하위 클래스에서 정의 - Abstract class --> Concrete class 템플릿 메소드 package designPattern.TemplateMethod; public ab..
추상팩토리- 생산적인 디자인 패턴 중 하나로써 좀 더 factory를 좀 더 생산적으로 만들어 낼 수 있다는 점외에는 factory pattern과 매우 비슷 -인터페이스 보다는 구조체에 접근할 수 있는 코드를 제공한다.-확장에 매우 용의한 패턴으로 쉽게 다른 서브 클래스들을 확장할 수 있다.-기존 팩토리 패턴의 if-else 로직에서 벗어날 수 있게 해준다.     package designPattern.abstractFactory;public class Computer extends Product { private String name; private int price; public Computer (String name, int price) { this.name = na..
keartt
'Java/Design Pattern' 카테고리의 글 목록