# GOF

상태 패턴
특정한 상태에 따라 행동이 달라지는 객체들을 위한 패턴 ex) 리모컨(TV가 꺼저 있냐 켜져 있냐에 따라 버튼의 동작이 달라짐) ※ 상태마다 다르게 적용하는 오퍼레이션일 때 상태 패턴을 적용하기가 적합하다

옵저버 패턴
※ subject는 여러 옵저버들을 등록하거나 해지할 수 있는 기능을 제공옵저버 인터페이스 해당(subscriber)ConcreteObserver에 해당간단하게 들어온 메시지를 출력하는 역할만 함subscriber를 구현하는 구현체여러 옵저버들을 등록하거나 해지할 수
디자인 패턴
디자인 패턴 소프트웨어 개발 중 나타나는 과제를 해결하기 위한 방법 중 한 가지이다자주 사용하는 설계 형태를 정형화하여 유형별로 설계 템플릿을 만들어 둔 것을 의미한다<span style="background-color: - <span style="back
[정보처리기사] 정리_ 디자인패턴
디자인 패턴 (Design Pattern) > ✔️ 디자인 패턴이란? 각 모듈의 세분화된 역할, 모듈들 간의 인터페이스와 같은 코드를 작성하는 수준의 세부적인 구현 방안을 설계할 때 참조할 수 있는 전형적인 해결 방식 또는 예제 > ✔️ 디자인 패턴의 특징 범용적
인터프리터 패턴
자주 등장하는 문제를 간단한 언어로 정의하고 재사용하는 패턴반복되는 문제 패턴을 언어 또는 문법으로 정의하고 확장할 수 있다.요청을 캡슐화 하여 호출자(invoker)와 수신자(receiver)를 분리하는 패턴.
커맨드 패턴
요청을 캡슐화하여 호출자(invoker)와 수신자(receiver)를 분리하는 패턴 요청을 처리하는 방법이 바뀌더라도 호출자의 코드는 변경되지 않는다.코딩을 할때 중복이 되는 비슷한 코드가 생성되는 문제를 해결하기 위해 사용호출자(invoker)와 수신자(receive

Composite Pattern
Studying GoF's Design Patterns(1994) bookUsing tree structure to represent part-whole hiearchies. Let's clients treat both individual objects and comp
추상 팩토리 패턴
추상팩토리(Abstract factory) 패턴이란?서로 관련있는 여러 객체를 만들어주는 인터페이스구체적으로 어떤 클래스의 인스터스를 (concrete product)를 사용하는지 감출 수 있다.팩토리 메소드 패턴이랑 비슷하지만 클라이언트에 중점을 맞춰진 패턴 팩토
팩토리 메소드 패턴
팩토리 메소드(Factory Method)패턴구체적으로 어떤 인스턴스를 만들지는 서브 클래스가 정한다.다양한 구현체(Product)가 있고, 그 중에서 특정한 구현체를 만들 수 있는 다양한 팩토리(Creator)를 제공장점확장에 열려있고 변경에 닫혀있는 객체 지향 원

커맨드 패턴
Command Pattern 001커맨드 패턴에 대하여 알아봅시다Command Pattern 002간단한 게임을 하나 제작할 예정입니다.이번 게임에서는 두가지 버튼만 활용할 예정이고, 버튼들은 alt 와 ctrl 만 사용할 예정이기에, alt에는 jump ctrl 에는

상태 패턴
imageFinite-state_machine 참고모든 주어진 순간에 프로그램이 속해 있을 수 있는 상태들의 수는 유한하며, 어떤 고유한 상태 내에서든 프로그램은 다르게 행동하고 한 상태에서 다른 상태로 즉시 전환될 수 있다. 현재의 상태에 따라 프로그램은 특정 다른

중개자 패턴
IMG_6115객체 간의 혼란스러운 의존 관계들을 줄일 수 있는 행동 디자인 패턴즉 중개자 패턴은 객체 간의 직접 통신을 제한하고 중재자 객체를 통해서만 협력할 수 있게 설정간단한 로그인 Form을 만든다고 구현을 해보자Guest를 누르면 Username과 Passwo

Builder 빌더
복잡한 객체를 단계별로 구성할 수 있다. 동일한 구성의 코드로 객체의 다양한 유형과 표현을 생성할 수 있다.사용처생성자에 인자가 많을 때생성자에 매개변수가 많을 때장점객체를 단계별로 구성하거나, 재귀적으로 단계를 구성할 수 있다.객체를 다양하게 구성할 때 동일 코드를

Abstract Factory 추상 팩토리
실제 객체가 정확히 무엇인지 알지 못해도 서로 관련성이 있거나 독립적인 여러 객체를 생성하고 조작할 수 있도록 해준다. 자주 사용하는 Iterator가 Abstract Factory패턴이 적용되었다.사용처객체가 생성되거나 구성, 표현되는 방식과 무관하게 시스템을 독립적

Chain of Responsibility 메서드 체이닝
핸들러를 따라 요청을 전달할 수 있는 디자인 패턴. 요청을 받으면 각 핸들러는 요청을 처리할지 다음 체인으로 전달할지 결정한다. 사용처순차적인 검증에서 실패하면 다른 검사를 진행할 이유가 없을 때각각의 검증 코드를 재사용할 때장점추가적인 처리가 필요 없을 때

Adapter Pattern 어댑터 패턴
클래스의 인터페이스를 사용자가 원하는 인터페이스 형태로 변환시킨다. 서로 일치하지 않는 인터페이스를 갖는 클래스들을 함께 동작시킨다. 사용처기존 클래스를 사용하고 싶지만 해당 인터페이스가 나머지 코드와 호환하지 않는 경우Service를 변경할 수 없을 때.

객체지향 프로그래밍의 특성과 SOLID
OOP → 프로그램을 객체로 구성하는 것.객체 → 작은 기능을 수행 하는 것.객체와 객체는 서로 협력핵심은 일을 잘게 쪼개서 객체에게 위임하고, 서로 협력한다.등장 배경프로그램의 거대화 → 작게 나눠서 만들고 합치자 → OOP 탄생객체의 구분객체는 type으로 구분한다

Factory Method 팩토리 메서드
부모 클래스에서 객체를 생성하기 위한 인터페이스를 제공하지만, 자식 클래스가 생성될 객체의 유형을 결정할 수 있도록 한다. 사용처코드에서 작업하는 객체의 정확한 유형과 종속성을 미리 알 수 없는 경우라이브러리 또는 프레임워크의 사용자에게 내부 구성요소를 확장하는방
GoF 디자인 패턴
객체 생성에 관련된 패턴으로 객체의 생성과 조합을 캡슐화를 통해 특정 객체가 변경되어도 프로그램 구조에 영향을 최소화하도록 유연성을 제공한다.Factory Method 부모 클래스에서 객체를 생성하기 위한 인터페이스를 제공하지만, 자식 클래스가 생성될 객체의 유형을