Java43 [Design Patterns] Composite Pattern : 컴포지트 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Composite Pattern 이란? Composite Pattern - 객체들을 트리 구조로 구성하여 부분과 전체를 나타내는 계층구조로 만들 수 있습니다. 이 패턴을 이용하면 Client에서 개별 객체와 다른 객체들로 구성된 복합객체(composite)를 똑같은 방법으로 다룰 수 있게됩니다. 패턴 소개 다음과 같이 Iterator 를 활용하여 메뉴를 출력하는 코드가 있다고 해봅시다. 이 코드들은 이전 글인 Iterator 에서 나왔던 코드들 입니다. 기억 하시죠? import java.util.Iterator; public class Waitress { Menu pancakeHou.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Template Method Pattern : 템플릿 메소드 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Template Method Pattern 이란? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 Template Method Pattern - 메소드에서 알고리즘의 골격을 정의합니다. 알고리즘의 여러 단계 중 일부는 서브클래스에서 구현할 수 있습니다. 템플릿 메소드를 이용하면 알고리즘의 구조는 그대로 유지하면서 서브클래스에서 특정 단계를 재정의 할 수 있습니다. 이 패턴은 일련의 단계들(메소드들의 순서) 로 알고리즘을 정의한 메소드 입니다. 메소드들을 어떤 순서로 호출하는지가 알고리즘이라 할 수 있겠습니다! 여러 알고리즘의 단계(메소드) 가운데 하나 .. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Facade Pattern : 퍼사드 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Facade Pattern 이란? Facade Pattern - 어떤 서브시스템의 일련의 인터페이스에 대한 통합된 인터페이스를 제공합니다. 퍼사드에서 고수준 인터페이스를 정의하기때문에 서브시스템을 더 쉽게 사용할 수 있습니다. 퍼사드 패턴에서는 인터페이스를 단순화 시키기위해 인터페이스를 변경합니다! 하나 이상의 복잡한 인터페이스를 깔끔하게 퍼사드 로 덮어주거든요! 더 나아가 쉽게 사용할수 있도록 도와준답니다. 다음 다이어그램을 함께 확인해 보시죠! 클라이언트가 퍼사드 덕분에 정말 편하게 서브시스템들을 사용하고 있군요! 패턴 소개 다음과 같이 클래스들이 서로 복잡하게 얽혀있고, 사용할려.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Adapter Pattern : 어댑터 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Adapter Pattern 이란? Adapter Pattern - 클래스의 인터페이스를 클라이언트에서 요구하는 다른 인터페이스로 변환한다. 인터페이스가 호환되지 않아 사용하지 못하던 클래스들을 사용할 수 있게 해 줍니다. 어떤 프로그램이 있는데, 새로운 업체에서 제공하는 기능을 사용할려고 한다 해봅시다. 하지만 기존 프로그램의 인터페이스와 새로 제공된 클래스의 인터페이스가 일치하지 않아 사용에 어려움이 있습니다. 이럴때 필요한 것 이 Adapter 입니다! 어댑터를 사용하면 기존시스템에서의 요청이 어댑터를 통해 변환되어 새로 업체에서 제공한 클래스에서 요청을 받아들일 수 있도록 변환.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Command Pattern : 커맨드 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Command Pattern 이란? 커맨드 패턴 - 커맨드 패턴을 이용하면 요구사항을 객체로 캡슐화 할 수 있으며, 매개변수를 사용하여 다양한 요구사항을 전달할 수 있게됩니다. 또한 요청 내용을 큐에 저장하거나 로그로 기록할수도 있으며, 작업되돌리기 또한 가능합니다. 우선 커맨드 패턴의 개념부터 알아봐야 겠죠? 코드보기 전에 간단한 이야기 먼저 들려드리죠~ 식당에서 음식을 주문한다고 해봅시다. 주문과정을 요약하면 다음과 같을 것 입니다! 1) 고객이 종업원에게 주문을 합니다. 2) 종업원이 주문을 받고 주방에 주문을 전달합니다. 3) 주방장이 주문대로 음식을 준비합니다 이 과정을 조금.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Singleton Pattern : 싱글턴 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Singleton Pattern 이란? 싱글턴 패턴은 간단히 말하면 특정 클래스에 대해서 객체 인스턴스를 하나만 만드는 패턴입니다. 어디서든지 그 인스턴스에 접근할 수 있도록 하기 위한 패턴입니다. 또한 이 패턴을 이용하면 필요할때만 객체를 만들어 사용하기 때문에 자원낭비를 막을 수 있습니다. 우선 간단한 구조를 살펴봅시다! 이 말이 무슨 의미인지 다음 단락부터 예시를 통하여 설명해 보겠습니다! 패턴 소개 우선 고전적인 싱글턴 패턴은 다음과 같습니다. public class Singleton { private static Singleton uniqueInstance; // Single.. BackEnd/Design Patterens 2022. 1. 13. [Design Patterns] Factory Pattern : 팩토리 패턴 Head First Design Patterns 책을 읽으며 정리한 내용입니다. 문제가 될 시 글을 내리도록 하겠습니다! Factory Pattern 이란? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 1) 팩토리 메소드 패턴 객체를 생성하기 위한 인터페이스 정의하는데, 어떤 클래스의 인스턴스를 만드는지는 서브클래스에서 결정하게 만듭니다. 이 패턴을 사용하면 클래스의 인스턴스를 만드는 일을 서브클래스에서 책임지는 것입니다. 위의 다이어그램을 보면 Creator에는 제품을 갖고 원하는 일을 하기 위한 메소드 들이 구현되어 있습니다. 하지만 제품을 만들어주는 FactoryMethod()는 추상 메소드로 정의되어 있을 뿐 구현되어 있지는 않습니다. 따라서 모든 서브클래스 에.. BackEnd/Design Patterens 2022. 1. 13. 이전 1 2 3 4 다음