자바 디자인 패턴
디자인 패턴 [템플릿 패턴] Template Pattern 개념 예제
디자인 패턴 [템플릿 패턴] Template Pattern 개념 예제
2022.01.03Template Pattern이란? ▶ 알고리즘의 뼈대를 정의하고, 일부를 서브 클래스로 위임합니다. 템플릿 메소드는 알고리즘 구조를 변경하지 않고 알고리즘의 일부 내용을 서브 클래스에서 재정의하여 중복되는 코드를 줄이고 유지보수를 편리하게 할 수 있다. 코드 요약 ▶ CalculaotrTemplate 추상객체는 덧셈을 하는 연산을 가지고 있습니다. 연산 결과에 앞뒤로 꾸며주는 코드를 작성합니다. 이때 abstract decorate()를 사용하여 서브 클래스에서 계산을 마친 결과를 꾸며주고 return 합니다. 클래스 다이어그램 1. AddDotCalculator class public class AddDotCalculator extends CalculatorTemplate{ @Override publ..
디자인 패턴 [퍼사드 패턴] Facade Pattern 개념 예제
디자인 패턴 [퍼사드 패턴] Facade Pattern 개념 예제
2022.01.03Facade Pattern이란? ▶ 어떤 서브시스템의 일련의 인터페이스에 대한 통합된 인터페이스 제공하여 서브시스템을 쉽게 사용이 가능합니다. 코드 요약 ▶ People 객체의 Facade 객체는 Calculator와 Print 객체를 동시에 이용합니다. Facade 객체가 Calculator와 Print 객체를 서브시스템으로 캡슐화를 해놓아서 People 객체는 실행하면 Facade 객체가 두 class의 로직을 호출 해줍니다. 클래스 다이어그램 1. Calculator class public class Calculator { public double add(double n1, double n2){ return n1+n2; } } 2. Print class public class Print { publ..
디자인 패턴 DAO Pattern 개념과 예제
디자인 패턴 DAO Pattern 개념과 예제
2022.01.01DAO Pattern이란? ▶ 업무와 DBMS를 분리하기 위해 사용됩니다. 업무와 데이터 2계층을 분리하고, 서로 그 상태를 동일하게 유지(persistence) 할 수 있습니다. 먼저 jdbc를 사용하기 위한 라이브러리를 추가하겠습니다. 아래 링크에서 다운로드 하시면 됩니다. https://github.com/xerial/sqlite-jdbc/releases Releases · xerial/sqlite-jdbc SQLite JDBC Driver. Contribute to xerial/sqlite-jdbc development by creating an account on GitHub. github.com 파일을 다운로드하고 import하기 편한 위치에 저장하시면 됩니다. 1. Libaries 추가 in..
디자인 패턴 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..
디자인 패턴 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..