GoF 4

[JAVA] 프록시 패턴(Proxy Pattern)과 데코레이터 패턴(Decorator Pattern)

객체지향 설계에서 자주 등장하는 디자인 패턴 중 하나인 프록시(Proxy) 패턴과 데코레이터(Decorator) 패턴은 구조는 유사하지만 목적은 전혀 다른 패턴이다. 프록시 패턴이란?프록시(Proxy) 패턴은 실제 객체에 접근하기 전, 중간 객체를 통해 접근을 제어하는 패턴입니다. 이 중간 객체는 실제 객체와 동일한 인터페이스를 구현하며, 다음과 같은 용도로 활용된다.접근 제어 : 권한이 있는 사용자만 접근지연 로딩 : 실제 객체를 사용할 시점에 생성캐싱 : 동일 요청에 대해 미리 데이터를 준비해 놓고 빠른 응답로깅 : 호출 및 실행 내역 기록보안 : 요청 유효성 검사 등구현public interface Image { void display();}public class RealImage implem..

JAVA 2025.06.10

[Shop Project] 전략 패턴(Strategy Pattern)을 활용한 결제 방식 구현

문제 정의 및 도입 배경쇼핑몰 프로젝트에서 Customer는 다양한 방식으로 결제할 수 있다.일반 카드 결제포인트 결제쿠폰 할인 결제이러한 다양한 결제 로직을 PaymentService 내부에서 모두 처리하게 되면조건문이 복잡해짐새로운 결제 방식 추가 시 기존 코드를 수정해야 함한 메소드에서 여러가지를 테스트하기 어려움따라서, 전략 패턴(Strategy Pattern)을 통해 결제 방식의 구현을 외부로 위임하여 결제 방식 구현에 확장성을 높이려고 한다.추후에 로그인 방식의 확장도 이 방법을 통해 활용할 수 있을 것 같다. Strategy Pattern을 이용한 다양한 결제 방식 구현public interface Payment { public void pay(int amount, Customer cu..

[Shop Project] 팩토리 메소드 패턴(Factory Method Pattern)을 활용한 주문 방식 분리

현재 상황 및 문제 정의쇼핑몰 프로젝트를 함에 있어 유저가 장바구니에 담아서 결제하는 경우, 상품 상세페이지 칸에서 직접 주문하는 경우 2가지로 방식을 나눌 수 있다. 모든 주문 방식을 하나로 처리하게 되면, 의존성이 커지게 된다. 또한, 결제 페이지까지 가게되면 공통된 부분들이 많으므로 팩토리 메소드 패턴을 이용해서 주문을 구현할 수 있다.장바구니 기본 주문즉시결제에 따른 개별 주문 Factory Method Pattern을 이용한 주문 방식 구현주문 방식에 맞는 Factory 구현public interface OrderFactory { Order createOrder(Customer customer, List products);}public class CartOrderFactory impleme..

[JAVA] 팩토리 패턴(Factory Pattern)이란?

팩토리 패턴이란?객체를 사용하는 코드에서 객체 생성 부분을 떼어내 추상화한 패턴이자 상속 관계에 있는 두 클래스에서 상위 클래스가 중요한 뼈대를 결정하고, 하위 클래스에서 객체 생성에 관한 구체적인 내용을 결정하는 패턴이다. 팩토리 패턴 구현enum PhoneType { APPLE, SAMSUNG}abstract class Phone { String name; public String Phone() { return name; }}class ApplePhone extends Phone { public ApplePhone() { name = "apple"; }}class SamsungPhone extends Phone { public SamsungP..

JAVA 2025.05.22