본문 바로가기

Design Pattern8

[Design Pattern] 팩토리 패턴 이번 포스팅으로 알아볼 디자인 패턴은 팩토리 패턴이다. 설명하기에 앞서 팩토리 패턴에 관하여 간단하게 설명하자면 공통된 종류를 갖는 객체들의 구현을 몰라도 팩토리 패턴을 통해 쉽게 생성하는 것을 말한다. 그렇다면 본격적으로 코드와 함께 알아보자. DB 클래스들과 함께 팩토리 패턴에 접근하려 한다. DIP(의존성 역전 원칙)에 의거하여 DB 인터페이스와 MariaDB, OracleDB를 생성해보자. DB public interface DB { public int execute(String sql); public void setUrl(String url); } MariaDB public class MariaDB implements DB { private String url; // 쿼리 실행 메서드 publi.. 2024. 4. 4.
[Design Pattern] 데코레이터 패턴 이번 포스팅 할 디자인 패턴은 데코레이터 패턴이다. 데코레이터는 말 그대로 장식하는 것이다. A, B, C 클래스가 있을 때 A -> B(A) -> C(B(A)) 이런식으로 장식해나갈 수 있는 패턴 또는 구조를 만드는 것을 데코레이터 패턴이라고 한다. 데코레이터 패턴을 사용하면 상속으로 복잡하고 중복된 코드를 만드는 것이 아니라 전략 패턴과 연계되어 좀 더 활용도 높은 구조를 만들 수 있다. 코드로 한 번 알아보자. 코드 구성 의존성 역전 원칙을 위한 Notifier 인터페이스 Notifier public interface Notifier { void send(); } BasicNotifier // 래퍼가 없는 데코레이터 // 이 클래스가 있어야 마무리 됨 public class BasicNotifier.. 2024. 4. 1.
[Design Pattern] 탬플릿 메서드 패턴 이번 포스팅에서는 디자인 패턴 중 하나인 템플릿 메서드 패턴에 관해 알아본다. 우선, 템플릿 메서드 패턴을 알아보기 위해 App, Teacher 클래스를 생성한다. Teacher public class Teacher { private void 입장하기(){ System.out.println("입장하기"); } private void 출석부르기(){ System.out.println("출석부르기"); } private void 퇴장하기(){ System.out.println("퇴장하기"); } public void 수업시작(){ 입장하기(); 출석부르기(); 퇴장하기(); } } App.java public class App { public static void main(String[] args) { Te.. 2024. 3. 28.
[Design Pattern] 싱글톤 패턴 우리가 지금껏 문지기 객체를 여러개 생성할 수 있었다. 하지만, 우리가 이번에 알아볼 싱글톤 패턴을 사용하면 문지기 객체를 한개밖에 사용하지 못한다. 그렇다면 싱글톤 패턴의 장점이 뭘까? 싱글톤 패턴의 장점 싱글톤 패턴의 사용시 장점은 다음과 같다. 메모리 절약 싱글톤 패턴은 전체 시스템에서 단 하나의 인스턴스만을 생성한다. 따라서, 동일한 리소스나 서비스에 대해 여러 인스턴스를 생성할 필요가 없다. 공유 리소스 접근 용이 싱글톤 리소스는 전역적으로 접근이 가능하다. 따라서, 다양한 부분에서 손쉽게 해당 인스턴스를 공유하고 접근할 수 있다. 인스턴스 제어 생성자가 private으로 설정되어 있다. 따라서, 인스턴스 생성을 엄격하게 제어하여 인스턴스가 무분별하게 생성되는 것을 방지한다. 데이터 일관성 싱글.. 2024. 3. 25.