본문 바로가기

Develop/Design Pattern4

옵저버 패턴이란? 옵저버 패턴 ( Observer Pattern ) 감시자 패턴이라고 볼 수 있다. 여러 개의 옵저버 클래스들이 있고, 그것들은 감시자이다. 어떤 하나의 객체의 상태가 변했다고 치자. 그 상태 변화를 감시자들은 눈치채고 통보를 하게 된다. 이것이 내가 이해한 옵저버 패턴이다. 먼저, 옵저버 패턴의 가장 기본적인 예시를 들어 구현한 코드이다. 1. Teacher 와 Student, 두 개의 인터페이스를 생성해주었다. package observer; public interface Teacher { void attach(Student student); void detach(Student student); void notifyStudent(String message); } package observer; publ.. 2022. 8. 17.
팩토리 패턴이란? 팩토리 패턴(Factory Pattern) 말 그대로, 공장과 같은 디자인 패턴이다. 객체를 어떻게 생성할 것인지에 대한 클래스 하나와 객체 생성만 하는 클래스 하나가 결합되어 동작한다. 예를 들면, 음식 레시피를 가진 클래스 하나와 그 레시피를 가지고 음식을 만들어내는 클래스 하나가 결합된 것이다. 이렇게 되면 장점은 유지보수성이 증가한다. 객체를 생성하는 로직이 따로 존재하기 때문에, 느슨한 결합을 가지며 이는 곧 유지보수성의 증가로 이어진다. package factory; // 아이스크림 -> 기본, 딸기, 초코 // 기본 1000, 딸기 2000, 초코 3000 abstract class IceCream { public abstract int getPrice(); @Override public S.. 2022. 7. 27.
싱글톤 패턴이란? 싱글톤 패턴(Singleton Pattern)은 바탕이 되는 하나의 클래스에 딱 하나의 인스턴스를 생성한다. 생성된 인스턴스 하나를 가지고 다른 모듈들이 공유하며 사용한다. 인스턴스를 여러 번 생성할 때 들어가는 비용을 줄일 수 있다. 그러나, 의존성이 높아지는 단점이 존재한다. (이러한 단점은 '의존성 주입' 을 통해 해결할 수 있다.) package singleton; class Singleton { private static Singleton instance = new Singleton(); private Singleton() {} public static Singleton getInstance() { if(instance == null) { instance = new Singleton(); } r.. 2022. 7. 26.
디자인 패턴이란? 디자인 패턴이란 프로그램을 설계하는 과정에서 반복적으로 일어나는 문제점들을 해결할 수 있는 일종의 해결책이다. 유사한 문제들이 발생하게 되면, 그 문제들에 대한 해결 방법이 일관된다. 그렇게 일관된 해결 방법들이 디자인 패턴이라고 볼 수 있다. 어떠한 문제가 자주 발생하면 각각에 맞는 디자인 패턴을 적용하여 문제를 효율적으로 풀어낼 수 있다. 디자인 패턴에는 여러 패턴 종류들이 존재한다. 다음 글에서 확인해보자. 2022. 7. 25.