# Design Pattern

컴포지트 패턴(Composite Pattern)
👨🏼💻 컴포지트 패턴은 컴포지트(복합 객체)와 단일 객체를 동일한 컴포넌트로 취급하여, 클라이언트에게 이 둘을 구분하지 않고 동일한 인터페이스를 사용하도록 하는 구조 패턴이다.이 패턴은 전체-부분의 관계를 가지는 객체들 사이의 관계를 트리 계층 구조로 정의해야

팩토리 메서드 패턴(Factory Method Pattern)
👨🏼💻 팩토리 메서드 패턴이란 객체 생성을 공장 클래스로 캡슐화 처리하여 대신 생성하게 하는 생성 디자인 패턴이다.클라이언트에서 new 를 통해 제품 객체를 생성하는 것이 아닌, 제품 객체들을 도맡아 생성하는 공장 클래스를 만들고, 이를 상속하는 서브 공장

템플릿 메서드 패턴(Template method pattern)
👨🏼💻 템플릿 메서드 패턴은 전체적으로는 동일하면서 부분적으로는 다른 구문으로 구성된메서드의 코드 중복을 최소화할 때 유용하다. 다른 관점에서 보면 동일한 기능을 상위클래스에서 정의하면서 확장/변화가 필요한 부분만 서브 클래스에서 구현할 수 있도록한다.primi

[Design Pattern][디자인패턴] Factory Pattern, Simple Factory, Factory Method Pattern, Abstract Factory Pattern, 팩토리, 팩토리 메서드 패턴, 추상 팩토리 패턴
면접을 위한 CS 전공지식 노트

[Swift] 대리개이션
오늘 알아볼 것은 Swift의 프로토콜을 사용할 수 있는 주요 디자인 패턴인 Delegation이다.Delegation is a design pattern that enables a class or structure to hand off (or delegate) som
[Design Pattern] 파사드 패턴 (Facade Pattern)
일련의 저수준 서브 인터페이스를 통합된 고수준 인터페이스로 묶어주는 패턴복잡한 시스템이나 , 서브시스템의 인터페이스를 단순화 시켜 클라이언트가 시스템과 상호 작용하기 쉽게 해줌클라이언트에게 단순화된 인터페이스를 제공하므로 , 클라이언트는 시스템의 내부 구현을 알 필요가

[생성패턴] 4. 프로토타입 패턴
프로토타입 패턴은 생성할 객체들의 타입이 프로토타입인 인스턴스로 부터 결정되도록 하며, 인스턴스는 새 객체를 만들기 위해 자신을 복제(Clone)합니다.프로토 타입 패턴을 적용하게 되면, 새로운 객체를 생성하는 고유의 비용이 주어진 상황에 있어서 불가피하게 매우 클 때

[생성패턴] 3. 빌더 패턴
구상 클래스에 의존하지 않고도 서로 연관되거나 의존적인 객체로 이루어진 제품군을 생상하는 인터페이스를 제공합니다. 구상 클래스는 서브클래스에서 만듭니다.복잡한 객체들을 단계별로 생성할 수 있도록 하는 디자인 패턴입니다.필더 패턴을 적용하면 다음과 같은 장점을 가질 수

Decorator-Pattern
스타벅스의 주문 시스템수많은 추가 옵션과 파생 음료를 깔끔하게 포용할 수 있는 시스템을 설계하라 !가격 산출추가된 옵션에 따른 설명 변경기존 시스템UntitledUntitled첨가물의 종류가 많아진다면 → 새로운 메소드를 추가해야 한다.첨가물 가격이 바뀔 때마다 기존

[생성패턴] 2. 팩토리 패턴 (추상 팩토리, 팩토리 메서드)
추상 팩토리 패턴(Abstract Pattern) : 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴팩토리 메서드 패턴(Factory Method Pattern) : 객체를 생성하는 인터페이스를 정의하고, 객체 생성은 서브 클래스(팩토리)로

Template Method Pattern, Iterator Pattern, Composite Pattern,Hollywood Principle, Simple Responsibility Principle
템플릿 메소드 패턴은 여태 배운 패턴 중 가장 간단한 패턴이었다. 정의를 먼저 살펴보자. 템플릿 메소드는 어떤 알고리즘들의 연속들로 이루어진 것을 묶은 메소드이다. 템플릿 메소드 패턴은 템플릿 메소드에서 사용되는 알고리즘들을 자기 클래스에서 사용하거나 변경이 많은 부분