Desing Pattern
디자인 패턴 (싱글톤 패턴) Singleton Pattern 개념과 예제
디자인 패턴 (싱글톤 패턴) Singleton Pattern 개념과 예제
2021.12.31Singleton Pattern이란? ▶클래스가 한 개의 인스턴스만을 만들 수 있도록 하고, 어디서나 생성된 인스턴스에 접근할 수 있도록 합니다. 여러가지 방법으로 Singleton Pattern을 제작하므로 클래스 다이어그램은 생략하겠습니다. SingletonCalculator는 singleton으로 설계되었으며 더하기 연산과 빼기 연산을 수행합니다. 1. static 메소드/ static 변수 public class SingletonCalculator { public static SingletonCalculator calculator = null; private SingletonCalculator() { } public SingletonCalculator getCalculator() { if (cal..
디자인 패턴 Factory Pattern 개념과 예제
디자인 패턴 Factory Pattern 개념과 예제
2021.12.30Factory Pattern이란? ▶객체 생성용 인터페이스는 서브클래스가 어떤클래스를 인스턴스화(객체 생성)할 지 결정할 수 있도록 합니다. 팩토리 메소드는 객체 생성을 서브 클래스에서 하도록 미룰 수 있게 해줍니다. ▶ 코드 요약: Store에서 계산기를 구매할 수 있습니다. 이때 계산기는 1 가지의 역할밖에 수행하지 못합니다. 사용자는 원하는 계산기를 구매합니다. 클래스 다이어그램과 코드를 확인하겠습니다. 1. Calculator interface public interface Calculator { double execute(double n1, double n2); } 2. CalculatorSet class public class CalculatorSet { public Calculator ord..
디자인 패턴 (데코레이터 패턴) Decorator Pattern 개념과 예제
디자인 패턴 (데코레이터 패턴) Decorator Pattern 개념과 예제
2021.12.30Decorator Pattern이란? ▶객체에 추가적인 책임을 동적으로 부여합니다. 데코레이터는 서브클래싱(상속)을 사용하지 않아도 유연하고 융통성 있는 기능 확장을 가능하게 합니다. 클래스 다이어그램과 코드로 확인하겠습니다. 코드의 흐름은 String에 문자열이 점점 추가되는 형태입니다. Decoator를 상속받은 Add 객체들이 자신이 추가해야 할 부분을 추가하여 return 해줍니다. 마지막인 Printer 객채는 print()를 통해 꾸며진 String을 return 하여 출려해줍니다. 1. Decorator abstract class public abstract class Decorator extends Printer{ public abstract String print(); } 2. AddEn..
디자인 패턴 observer pattern(옵저버 패턴) 개념과 예제
디자인 패턴 observer pattern(옵저버 패턴) 개념과 예제
2021.12.30Observer Pattern이란? ▶ 객체간 1:다 의존 관계를 정의한다. 한 개 객체 상태가 변경될 때, 그 객체와 의존 관계에 있는 모든 객체들이 자동으로 알림을 받고 상태를 갱신한다. 클래스 다이어그램과 코드로 확인하겠습니다. 계산기가 존재하며 setNumber() 을 통해서 숫자가 바뀔때마다 계산기가 가진 observer의 update()를 호출합니다. 여기서 n1, n2가 관찰 대상입니다. MinusPrint 와 PlusPrint는 관찰자입니다. 1. Observer interface public interface Observer { void update(double n1, double n2); } 2. Subject interface public interface Subject { void ..
디자인 패턴 (전략 패턴) strategy pattern 개념과 예제
디자인 패턴 (전략 패턴) strategy pattern 개념과 예제
2021.12.29Strategy pattern이란 ? ▶ 같은 종류의 작업을 하는 알고리즘을 정의, 각 알고리즘을 캡슐화, 그리고 알고리즘들을 서로 바꿔 사용할 수 있도록 한다. 스트래티지 패턴은 알고리즘을 사용하는 클라이언트로부터 독립적으로 알고리즘을 바꿔서 적용시킬 수 있도록 합니다. 정의만 본다면 무슨 뜻인지 잘 이해가 가지 않을 수 있습니다. 바로 코드와 클래스 다이어그램으로 알아보겠습니다. 사람은 계산기를 사용하고 계산기의 종류는 총 2가지 입니다. 덧셈을 진행하는 계산기와 뺄셈을 진행하는 계산기입니다. strategy pattern을 적용한 형태입니다. operate()를 호출해서 calculator의 execute()를 실행합니다. 계산기의 역할에 따라 set을 이용해서 바꿔줍니다. 1. Calculator..