본문 바로가기

전체 글13

Head First Design Patterns : Facade Pattern Facade Pattern 라이브러리에 대한, 프레임워크에 대한 또는 다른 클래스들의 복잡한 집합에 대한 단순화된 인터페이스를 제공하는 패턴 서비시스템을 더 편리하게 사용하기 위해 쓰임 구조 2024. 1. 29.
Head First Design Patterns : Adapter Pattern Adapter Pattern 특정 클래스 인터페이스를 클라이언트에서 요구하는 다른 인터페이스로 변환 호환되지 않아 쓸 수 없었던 클래스를 사용 가능하게 함. 기존 클래스를 사용하고 싶지만 그 인터페이스가 나머지 코드와 호환되지 않을 때 사용 구조 Client Target 변화에 대한 요구사항 Adapter Adaptee로 구성 Target 인터페이스를 구현 Adaptee Client와 호환되지 않는 기존 코드 예 java.util.Arrays#asList() java.util.Collections#list() java.util.Collections#enumeration() java.io.InputStreamReader(InputStream) (returns a Reader object) java.io.O.. 2024. 1. 16.
Head First Design Patterns : Command Pattern Command Pattern 요청을 객체의 형태로 캡슐화하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 매서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 취소할 수 있게 하는 패턴 구조 Invoker Command 객체 존재. Command 객체 안에 있는 execute 메소드 호출 하여 Command 동작 시킴 Command 모든 Command 객체 에서 구현해야 하는 인터페이스 일반적으로 커맨드를 실행하기 위한 단일 메서드로 이루어짐. ConcreteCommand Receiver에 있는 메소드를 호출해 작업 수행 하게 함. Receiver에 있는 메서드를 실행하는 데 필요한 매개 변수들은 구상 커맨드의 필드들로 선언할 수 있음. Receiver 비즈니스 로직이 들어 있는 객체 실제.. 2024. 1. 14.
Head First Design Patterns : Singleton Pattern Singleton Pattern 클래스 인스턴스가 하나만 있도록 하면서 이 인스턴스에 대한 전역 접근 지점을 제공 구조 정적 메서드 getInstance 선언. 선언된 클래스의 인스턴스 반환 생성자는 숨겨져 있어야함. 인스턴스를 가져오는 방법은 getInstance가 유일. public class Singleton { private static Singleton instance; private Singleton() {} public Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance } } 고전적인 Singleton 구현 multi thread 환경에서 여러개의 인스턴스가 생길 가능 성.. 2024. 1. 1.