본문 바로가기

디자인패턴11

[Design Pattern] 어댑터 패턴(Adapter Pattern)에 대해 알아보자 Definition 어댑터 패턴(Adapter Pattern)은 특정 클래스 인터페이스를 클라이언트에서 요구하는 다른 인터페이스로 변환한다. 인터페이스가 호환되지 않아 같이 쓸 수 없었던 클래스를 사용할 수 있게 도와준다. Wrapper라고도 알려짐 Structural Patterns Situation - 사용하려는 클래스가 인터페이스 요구사항을 충족하지 않을 때 (e.g. XML -> JSON) - 기존 클래스를 사용하고 싶지만 인터페이스가 나머지 코드와 호환되지 않을 때 - 상위 클래스에 추가할 수 없는 몇가지 공통 기능이 없는 여러 기존 하위 클래스들을 재사용하려는 경우 Structure Pros - Single Responsibility Principle. 프로그램의 기본 비즈니스 로직에서 인터페.. 2022. 7. 12.
[Design Pattern] 커맨드 패턴(Command Pattern)에 대해 알아보자 Definition 커맨드 패턴(Command Pattern)을 사용하면 요청 내역을 객체로 캡슐화해서 객체를 서로 다른 요청 내역에 따라 매개변수화할 수 있다. 이러면 요청을 큐에 저장하거나 로그로 기록하거나 작업 취소 기능을 사용할 수 있다. Situation - Request는 변형 시간 또는 변형 주문으로 지정, 대기 및 실행해야 한다. - Request들의 히스토리가 필요할 때 - 호출자는 호출을 처리하는 객체에서 분리되어야 한다. - 이를 통해 대기열 및 콜백과 같은 기존의 객체 기반 관계에서 요청을 처리할 수 있다. - 스레드 큐에서 커맨드를 하나씩 제거하면서 커맨드의 execute() 메소드를 호출한다. 메소드 실행이 끝나면 다시 큐에서 새로운 커맨드 객체를 가져간다. - 리모컨의 각 슬롯.. 2022. 7. 4.
[Design Pattern] 싱글턴 패턴(Single Pattern)에 대해 알아보자 Definition 싱글턴 패턴(Singleton Pattern)은 클래스 인스턴스를 하나만 만들고, 그 인스턴스로의 전역 접근을 제공한다. Situation - 단일 객체에 대한 제어된 액세스가 필요할 때 - 프로그램의 클래스에서 모든 클라이언트가 사용할 수 있는 단일 인스턴스만 있어야 하는 경우. 예를 들어, 프로그램의 다른 부분에서 공유하는 단일 데이터베이스 객체 - 전역 변수를 더 엄격하게 제어해야 하는 경우 Structure - Singleton 클래스는 자체 클래스의 동일한 인스턴스를 반환하는 정적 메서드 getInstance를 선언한다. - Singleton의 생성자는 클라이언트 코드에서로부터 숨겨져야 한다. getInstance 메서드를 호출하는 것이 Singleton 객체를 가져오는 유일.. 2022. 6. 26.
[Design Pattern] 팩토리 메소드 패턴(Factory Method Pattern)에 대해 알아보자 Definition 팩토리 메소드 패턴(Factory Method Pattern)에서는 객체를 생성할 때 필요한 인터페이스를 만든다. 어떤 클래스의 인스턴스를 만들지는 서브클래스에서 결정한다. 팩토리 메소드 패턴을 사용하면 클래스 인스턴스를 만드는 일을 서브클래스에게 맡기게 된다. - Creational Patterns 사용하는 서브클래스에 따라 생산되는 객체 인스턴스가 결정된다. Situation - 피자 종류가 계속해서 추가되어 새로운 피자에 대한 if 문이 증가하고 new를 피자 클래스안에서 계속해서 처리 -> 객체 생성 코드를 Factory 클래스를 생성하여 이동시킴 - 클래스는 생성해야 하는 클래스를 알지 못함 - 서브클래스는 생성되어야 하는 객체를 지정할 수 있음 - 부모 클래스는 생성을 하위.. 2022. 6. 23.
300x250