디자인 패턴
디자인 패턴 [템플릿 패턴] Template Pattern 개념 예제
디자인 패턴 [템플릿 패턴] Template Pattern 개념 예제
2022.01.03Template Pattern이란? ▶ 알고리즘의 뼈대를 정의하고, 일부를 서브 클래스로 위임합니다. 템플릿 메소드는 알고리즘 구조를 변경하지 않고 알고리즘의 일부 내용을 서브 클래스에서 재정의하여 중복되는 코드를 줄이고 유지보수를 편리하게 할 수 있다. 코드 요약 ▶ CalculaotrTemplate 추상객체는 덧셈을 하는 연산을 가지고 있습니다. 연산 결과에 앞뒤로 꾸며주는 코드를 작성합니다. 이때 abstract decorate()를 사용하여 서브 클래스에서 계산을 마친 결과를 꾸며주고 return 합니다. 클래스 다이어그램 1. AddDotCalculator class public class AddDotCalculator extends CalculatorTemplate{ @Override publ..
디자인 패턴 [스테이트 패턴] State Pattern 개념 예제
디자인 패턴 [스테이트 패턴] State Pattern 개념 예제
2022.01.03State Pattern이란? ▶ 객체의 내부 상태가 바뀔 때 객체의 동작을 변경할 수 있도록 합니다. (객체의 현재 상태에따라 입력 혹은 실행하는 메소드가 다르다.) 코드 요약 ▶ Calculator 객체는 StartState, Num1State, OperandState, Num2State총 4가지의 상태를 가집니다. 사용자는 숫자 혹은 연산자를 입력하며 'q'가 입력되면 종료합니다. 1. StartState: 숫자를 입력받고 num1에 저장합니다. 2. Num1State: 연산자를 입력 받고 operand에 저장합니다. 3. OperandState: 숫자를 입력받고 num2에 저장합니다. 4. Num2State: '='을 입력받아 계산을 실행하고 출력합니다. 클래스 다이어그램 1. State inte..
디자인 패턴 [커맨드 패턴] Command Pattern 개념 예제
디자인 패턴 [커맨드 패턴] Command Pattern 개념 예제
2022.01.03Command Pattern이란? ▶ 요구사항(요청, 명령)을 객체로 캡슐화시킵니다. 이를 이용해서 다른 요구사항을 지닌 클라이언트를 매개변수화 시킬 수 있습니다. 말 그대로 리모콘처럼 여러 가지의 명령어를 부여하여 그것을 호출하는 것입니다. 코드 요약 ▶ People 객체는 Command 인터페이스의 List를 가지고 있고 List에는 Calculator의 각각의 기능이 있습니다. List의 인덱스를 호출하여 각각 다른 계산을 이용할 수 있습니다. 클래스 다이어그램 1. AddCalculator class public class AddCalculator implements Commend{ @Override public double execute(double n1, double n2) { return n..
디자인 패턴 [퍼사드 패턴] 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..
디자인 패턴 [어댑터 패턴] Adapter Pattern 개념 예제
디자인 패턴 [어댑터 패턴] Adapter Pattern 개념 예제
2022.01.03Adapter Pattern이란? ▶ 클래스의 인터페이스를 클라이언트가 원하는 형태의 또 다른 인터페이스로 변환. 어댑터는 호환되지 않는 인터페이스 때문에 동작하지 않는 클래스들을 함께 동작할 수 있도록 만들어준다. 코드 요약 ▶ linux 환경에서 사용하는 LinuxCalculator와 window 환경에서 사용하는 WindowCalculator가 있다고 가정합니다. linuxCalculator는 덧셈만을 지원하고 windowCalculator는 뺄쎔만 지원합니다. CalculatorAdapter는 linux 환경에서 windowCalculator의 뺄셈 가능을 할 수 있게 해주는 역할을 하는 Adatepr입니다. 클래스 다이어그램 1. LinuxCalculator class public class L..
디자인 패턴 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..