본문 바로가기

Design Pattern

(4)
[Java] 데코레이터 패턴 (Decorator Pattern) 데코레이터 패턴이란?데코레이터 패턴(Decorator Pattern)은 객체의 기존 코드를 수정하지 않고 확장하면서 기능을 동적으로 추가하고 싶을 때 쓰는 디자인 패턴이다. 이 패턴은 상속을 사용하는 대신 객체를 "감싸는" 방식으로, 기존 객체의 기능을 더 유연하게 확장할 수 있다. 프록시 패턴(Proxy Pattern)에서도 프록시 객체에서 실제 객체를 '감싸서' 실제 객체의 접근을 제어하거나 추가적인 기능을 수행한다. 데코레이터 패턴이 쓰이는 대표적인 경우는 입출력 스트림(I/O Stream), 압축, 암호화 등의 기존의 베이스 클래스를 그대로 사용하면서 다양한 기능을 동적으로 추가해야 할 때이다.데코레이터 패턴 예제메서지 기능을 수행하는 기존의 객체를 만들기 위해 필요한 인터페이스와 클래스이다.//..
[Java] 템플릿 메서드 패턴(Template Method Pattern) 템플릿과 템플릿 메서드 패턴템플릿이란, 정해진 폼 혹은 틀이란 뜻이다. 템플릿 메서드 패턴은 반복적인 로직을 제거하기 위해, 중복된 로직(알고리즘)을 템플릿화 시켜서 템플릿 클래스로 만든다. 그리하여 이 템플릿 클래스만 사용하면 중복을 제거할 수 있도록하는 것이다. 템플릿 클래스에 여러 메서드르의 조합(알고리즘)을 템플릿화 시켜서 템플릿 메서드로 만든다. 템플릿 메서드의 내부 메서드들 중에서 어디서나 동일하게 쓰이는 메서드는 구현을 하고, 경우에 따라 다른 로직을 구현해야되는 메서드는 추상 메서드로 정의하여서 하위 클래스에서 구현하도록한다. 그리하여 템플릿 클래스도 추상 클래스로 정의한다.템플릿 메서드 패턴의 예제주문 프로세스에서 상품을 선택하는 로직, 상품을 배송하는 로직, 상품을 결제하는 로직이 존재..
[Java] 프록시 패턴 (Factory Pattern) DI(Dependency Injection)와 IoC(Inversion of Control) 글에 이어서, 프록시 패턴(proxy pattern)에 대해서 설명하려고한다. 아래의 프록시 패턴의 코드 예제는 이 링크에 이어서 작성을 한다. [Java] DI(Dependency Injection)와 IoC(Inversion of Control)의존성 주입(Dependency Injection) 및 IoC, DIP, Factory 패턴을 설명하기 위해서, Oauth를 사용한 애플, 구글, 페이스북 로그인 구현시에 필요한 인증(Authentication)을 예시로 들것이다.객체의 내부에서 의존devjohnpark.tistory.com 프록시 패턴 (Factory Pattern)프록시 패턴 적용 예제기존의 객체들..
[Java] DI(Dependency Injection)와 IoC(Inversion of Control) 의존성 주입(Dependency Injection) 및 IoC, DIP, Factory 패턴을 설명하기 위해서, Oauth를 사용한 애플, 구글, 페이스북 로그인 구현시에 필요한 인증(Authentication)을 예시로 들것이다.객체의 내부에서 의존성 주입예를들어, 애플 로그인을 구현한다고 가정한다면 로그인을 수행하는 클래스를 LoginService정의하고, 로그인을 수행하기 위해서 애플 유저 인증을 수행하는 클래스 AppleAuthenticator를 정의하였다.class LoginService { private Applethenticator appleAuthenticator; public LoginService() { // LoginService 클래스의 내부에서 App..