디자인 패턴 14

Factory Pattern - 생성

👣 문제 상황 객체 생성 부분이 변경 가능성이 농후한 경우, 전체 소스 코드를 살펴보지 않기 위해 객체 생성 부분만을 따로 떼어내야 할 필요가 있을 때 목적: 객체 생성 부분 유연성 향상 👣 해결 방법 abstract class Coffee { public abstract int getPrice(); } class Latte extends Coffee { private int price = 6000; public int getPrice() { return this.price; } } class Americano extends Coffee { private int price = 5000; public int getPrice() { return this.price; } } class CoffeeFactory..

디자인 패턴 2023.07.19

Singleton Pattern - 생성

👣 문제 상황 필드에 데이터를 가공하고 보유하는 클래스가 아닌 메서드를 사용하기 위해서 사용하는 클래스의 경우 굳이 여러 개의 객체를 만들어서 사용할 이유가 전혀 없다. 오히려 여러 개를 만들면 GC의 가동 빈도만 늘리거나 최악의 경우 메모리 누수도 일으킬 수 있기 때문에 객체를 굳이 2개 이상으로 만들 필요가 없는 경우는 많다. 👣 해결 방법 자바의 경우 7가지 방법이 있다. 1. Eager Initialization - 이른 초기화 정적 필드를 이용한다. public class Singleton { private static final Singleton INSTANCE = new Singleton(); private Singleton() {} public Singleton getInstance() {..

디자인 패턴 2023.07.19

디자인 패턴이란?

👣 정의 소프트웨어 공학에서 반복적으로 발생하는 문제를 해결할 수 있는 일련의 해결책들을 재사용 가능한 형태로 정리한 것. 👣 구성 요소 앞으로 아래 규격에 맞춰 게시물을 작성한다. 패턴 이름 문제 상황 해결 방법 결과 👣 유래 GoF(Gang of Four)라고 알려진 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides의 저자들이 처음으로 정리한 "Design Patterns: Elements of Reusable Object-Oriented Software"이라는 책에서 소개됨.

디자인 패턴 2023.07.19