# GOF

70개의 포스트

CS_Step16 - 복합 패턴(MVC, MVP, MVVM)

1) MVC 패턴 (Model-View-Controller Pattern) 2) MVP 패턴 (Model-View-Presenter Pattern) 3) MVVM 패턴 (Model-View-View Model Pattern)

2022년 7월 31일
·
0개의 댓글
·

CS_Step15 - 프록시 패턴(Proxy Pattern)

프록시란, '대리'라는 의미로 어떤 일을 대신 시키는 것이다. 예를 들어, 보안상의 이유로 서버를 외부에 노출시키지 않기 위해 서버와 클라이언트의 중간에서 접점을 담당하는 서버를 보고 프록시 서버라고 한다.인터페이스를 사용하고 실행시킬 클래스에 대해 객체가 들어갈 자리

2022년 7월 29일
·
0개의 댓글
·

CS_Step14 - 상태 패턴(State Pattern)

상태 패턴이란?

2022년 7월 27일
·
0개의 댓글
·

CS_Step13 - 컴포지트 패턴(Composite Pattern)

컴포지트 패턴은 여러 개의 객체들로 구성된 복잡 객체와 단일 객체를 클라이언트에서 구별없이 다르게 해주는 패턴을 의미한다.구체적인 부분Leaf 클래스와 전체에 해당하는 Composite 클래스에 공통 인터페이스를 정의한다.구체적인 부분 클래스COmposite 객체의 부

2022년 7월 26일
·
0개의 댓글
·

CS_Step12 - 반복자 패턴(Iterator Pattern)

반복자(Iterator) 패턴은 객체 지향 프로그래밍에서 반복자를 사용하여 컨테이너를 가로지르며 컨테이너의 요소들에 접근하는 패턴이다.다시 말하자면, 집합체의 인터페이스 및 구현을 간단히 만들어주며, 집합체에서는 반복 작업에 손을 떼고 객체 컬렉션 관리에만 전념하게 해

2022년 7월 25일
·
0개의 댓글
·
post-thumbnail

옵저버!! 너... 관음증 있니?

TL;DR: 옵저버 패턴은, 여러 객체가, 특정 상태의 변화에 관심을 가져야 할 때, 유용한 패턴이다.

2022년 7월 24일
·
0개의 댓글
·

CS_Step11 - 퍼사드 패턴(Facade Pattern)

퍼사드 패턴은 여러 인터페이스의 사용을 단순하게 만들어주는 패턴이다다시 말해, 인터페이스를 통합하여 사용하기 쉬운 인터페이스를 제공하고 복잡한 시스템을 훨씬 편리하게 사용하도록 만들어준다.예를 들어, 어떤 한 유저(User)가 영화를 보기 위하여 준비하는 과정을 생각해

2022년 7월 23일
·
0개의 댓글
·

CS_Step10 - 어댑터 패턴(Adapter Pattern)

한 클래스의 인터페이스를 클라이언트에서 사용하고자하는 다른 인터페이스로 변환하는 패턴다시 말하자면, 호환되지 않는 인터페이슬르 사용하는 클라이언트를 그대로 활용할 수 있으며, 이로써 클라이언트와 구현된 인터페이스를 분리시키며, 이후에 인터페이스가 바뀌더라도 그 변경 내

2022년 7월 23일
·
0개의 댓글
·
post-thumbnail

Design Patterns

GOF의 Design Pattern을 정리합니다.

2022년 7월 23일
·
0개의 댓글
·

CS_Step9 - 커맨드 패턴(Command Pattern)

커맨드 패턴은 객체의 행위(메서드)를 클래스로 만들어 캡슐화하는 패턴이다.다시 말하자면, 어떤 객체(A)에서 다른 객체(B)의 메서드를 실행하려면 객체(B)를 참조하고 있어야 하는 의존성이 발생하게 된다. 이를 방지하기 위한 패턴이다.예를 들어, 기가 지니(GiGA G

2022년 7월 20일
·
0개의 댓글
·
post-thumbnail

CS_Step8 - 싱글톤 패턴(SingleTon Pattern)

인스턴스가 프로그램 내에서 오직 하나만 생성되는 것을 보장하고, 프로그램 어디서든 이 인스턴스에 접근할 수 있도록 하는 패턴.이 말은 즉, "B에 변화가 생긴다면, A에 영향을 미친다" 라는 뜻이지 않을까? 예를 들어, "초밥의 레시피에 따라서 그 초밥이 정해진다" 라

2022년 7월 19일
·
0개의 댓글
·

CS_Step7 - 추상 팩토리 메서드 패턴(Abstract Factory Method Pattern)

팩토리 메서드 패턴 VS 추상 팩토리 메서드 패턴 > - 팩토리 메서드 패턴 : 조건에 따른 객체 생성을 팩토리 클래스로 위임하여, 팩토리 클래스에서 객체를 생성하는 패턴 > - 추상 팩토리 메서드 패턴 : 서로 관련있는 객체들을 다 모아 팩토리 클래스를 만들고,

2022년 7월 19일
·
0개의 댓글
·

CS_Step6 - 팩토리 메서드 패턴(Factory Method Pattern)

어떤 상황에서 조건에 따라 객체를 다르게 생성해야할 때 사용하는 패턴.사용자의 입력값에 따라 하는 일이 달라질 경우, 분기를 통해 특정 객체를 생성해야 하는데 이때, 팩토리라는 클래스에 위임하여 팩토리 클래스가 객체를 생성하도록 하는 방식이다.예를 들어, 어느 한 회사

2022년 7월 18일
·
0개의 댓글
·

CS_Step5 데코레이터 패턴(Decorator Pattern)

기본 기능에 추가할 수 있는 기능의 종류가 많은 경우 각 추가 기능을 Decorator클래스로 정의한 뒤, 필요한 Decorator 객체를 조합함으로써 추가 기능의 조합을 설계하는 패턴.기본 기능에 추갈할 수 있는 많은 종류의 부가 기능에서 파생되는 다양한 조합을 동적

2022년 7월 16일
·
0개의 댓글
·

CS_Step3 전략 패턴(Strategy Pattern)

객체들이 할 수 있는 행위 각각에 대해 전략 클래스를 생성하고, 유사한 행위들을 캡슐화 하는 인터페이스를 정의한다.객체의 행위를 동적으로 바꾸고 싶을 때, 직접 행위를 수정하지 않고 전략 클래스를 바꿈으로써 행위를 유연하게 확장한다.예를 들어, 차(Car)와 비행기(A

2022년 7월 13일
·
0개의 댓글
·
post-thumbnail

디자인 패턴에 대하여

디자인 패턴디자인 패턴은 프로그램을 개발하는 과정에서 빈번하게 발생하는 디자인 문제를 정리해서 상황에 따라 간편하게 적용할 수 있게 정리한 것이다. 소프트웨어 개발은 요구사항 분석 -> 설계 -> 구현 -> 테스트를 반복하게 되는데이때, 디자인 패턴은 설계에 해당한다.

2022년 7월 12일
·
0개의 댓글
·
post-thumbnail

UML 클래스 다이어그램

GOF의 디자인 패턴을 분석하기 전에, GOF의 디자인 패턴에서 사용하는 클래스 다이어그램도를 보려면 UML을 알아야 한다! 클래스 구조와 클래스간에 관계에 대해서만 알아도 GOF의 디자인 패턴을 이해하는데에는 무리가 없다.클래스에 대한 데이터(멤버변수)와 행동양식(멤

2022년 7월 5일
·
0개의 댓글
·
post-thumbnail

HeadFirst 04. 팩토리 패턴

인터페이스 바탕으로 만들어진 코드는 어떤 클래스든 특정 인터페이스만 구현하면 사용할 수 있기에 시스템에서 일어날 수 있는 여러 변화에 대응할 수 있음. -> 다형성피자 종류를 고르고 그에 맞게 피자를 만드는 코드 추가!신메뉴 추가시 인스턴스를 만드는 구상 클래스를 선택

2022년 6월 18일
·
0개의 댓글
·
post-thumbnail

HeadFirst 03. 데코레이터 패턴

고객이 모카를 주문했으므로 Mocha 객체를 만들고 그 객체로 DarkRoast를 감쌈Mocha 객체는 데코레이터임. 객체의 형식은 객체가 장식하고 있는 객체를 반영하는데, Beverage가 이를 반영함. 여기서 반영한다는 뜻은 같은 형식을 갖는다는 뜻!Mocha에도

2022년 6월 18일
·
0개의 댓글
·
post-thumbnail

HeadFirst 02. 옵저버 패턴

A. 인터페이스가 아닌 구체적인 구현을 바탕으로 코딩함. B. 새로운 디스플레이 항목이 추가될 때마다 코드를 변경해야 함. C. 실행 중에는 디스플레이 항목을 추가하거나 제거할 수 없음. E. 바뀌는 부분을 캡슐화하지 않음. p.78주제(Subject)는 옵저버가 특정

2022년 6월 18일
·
0개의 댓글
·