본문 바로가기

Java/DesignPattern5

Singleton Pattern 싱글턴 패턴 싱글턴 패턴의 특징싱글턴 패턴은 클래스 인스턴스를 하나만 만들고, 그 인스턴스로의 전역 접근을 제공합니다.- 싱글턴이 Lazy 방식으로 생성되도록 구현할 수 있습니다.- 자원을 많이 잡아먹는 인스턴스에 특히 유용합니다 ( 애플리케이션이 시작될 때 객체가 생성되는 전역변수로 선언하는 것보다 자원을 아낄 수 있습니다.) 멀티스레딩 문제- 멀티스레드 환경에서는 동시 접근 문제 때문에 의도치 않게 여러 인스턴스가 만들어질 수 있다.- 단순히 public 접근자에서 인스턴스 유무를 가지고 판단하게 되면 인스턴스가 여러개 생성될 수 있다class Singleton { private static Singleton instance; private Singleton() {} public static S.. 2025. 9. 7.
팩토리 메서드 패턴 vs 추상 팩토리 패턴 팩토리 메서드 패턴과 추상 팩토리 패턴은 객체 생성을 캡슐화 하는 패턴이며,클라이언트와 구상 클래스가 서로 분리된 유연한 디자인을 구현할 수 있게 도와준다. 팩토리 메서드: “어떤 구체 Product를 만들지”를 하위 Creator가 결정한다추상 팩토리: “어떤 제품군(여러 Product 계층) 을 만들지”를 팩토리 인스턴스 교체로 결정한다언제 어떤 패턴을 쓰나?팩토리 메서드한 제품 계층만 다루고, 구체 타입 선택을 상속(하위 Creator) 으로 바꾸고 싶을 때.상위 로직(템플릿) 속에서 객체 생성 지점을 오버라이드로 바꾸고 싶을 때.클래스 수가 비교적 적고 “템플릿 메서드” 흐름이 중요할 때.추상 팩토리여러 제품 계층(예: Button/Checkbox/…)이 세트(제품군) 로 맞물려야 할 때.런타임.. 2025. 9. 7.
템플릿 메소드 패턴 만약에 여러 Controller 코드를 짜는데1.초기화 - 정해져있는 코드2.실행     - 매번 다르게 작성하는 코드3.마무리 - 정해져있는 코드라는 순서로 작성해야 한다초기화, 마무리하는 코드는 고정된 코드이고, 실행하는 코드만 다르게 작성하고 싶을 때 어떻게 할까?상속과 추상메소드를 이용하면 된다. 이를 이용한 것이 템플릿 메소드 패턴이다.템플릿 메소드 패턴의 특징1. 원하는 순서대로 코드가 실행되도록 강제할 수 있다. (아래의 execute()참고)package com.example.fw;public abstract class Controller2 { /** * 내가 가지고 있는 메소드를 호출하는데 * 어떠한 순서를 가지고 있다 * 이런 메소드를 템플릿 메소드라고 한다 .. 2024. 6. 3.
팩토리 메서드 패턴 Factory method pattern (생성패턴)객체가 생성되는 과정을 숨기고 완성된 인스턴스만 반환하는 패턴이다. new연산자로 객체를 생성하지 않고, 객체의 생성과정을 다른 객체에 맡겨서 리턴 받아서 사용한다이렇게 객체 생성을 대신 해주는 클래스를 Factory 라고 한다. 장점 : 코드 간 결합도를 낮출 수 있다. 예시)  public class Bus {} public class BeanFactory { public Bus getBus(){ return new Bus(); }} Bus 객체를 만들 때, new 연산자로 생성하지 않고 BeanFactory 클래스를 통해서 객체를 사용한다.public class BeanFactoryMain { public static .. 2024. 5. 16.
MVVM 패턴 일반적인 MVVM 패턴 MVVM 패턴은 MVC 패턴에서 Controller를 빼고 ViewModel을 추가한 패턴이다. https://jhtop0419.tistory.com/21 2023. 7. 27.