# GOF

75개의 포스트
post-thumbnail

어댑터 패턴

어댑터 패턴(Adapter Pattern)은 특정 클래스 인터페이스를 클라이언트에서 요구하는 다른 인터페이스로 변환합니다. 인터페이스가 호환되지 않아 같이 쓸 수 없었던 클래스를 사용할 수 있게 도와줍니다.

약 23시간 전
·
0개의 댓글
·

Design Pattern

디자인 패턴을 이야기 할 때 항상 언급되는 문구가 있다."바퀴를 다시 발명하지마라(Don't reinvent the wheel)"소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 또 발생했을 때 재사용할 수 있는 훌륭한 해결책이미 만들어져서 잘 되는

3일 전
·
0개의 댓글
·
post-thumbnail

템플릿 메서드패턴

템플릿 메서드 패턴 변하지 않는 것과 변하는 것의 분리 비슷한 패턴의 코드가 반복되는 경우가 있다. 보통 비슷한 패턴의 변하지 않는 코드는 대부분 부가적인 기능인 경우가 많고, 변할 가능성이 있는 코드는 핵심 기능인 경우가 많다. 이 경우 핵심 기능과 부가 기능을 분

5일 전
·
0개의 댓글
·
post-thumbnail

빌더 패턴

생성 패턴에서는 중요한 이슈가 두 가지가 존재한다.생성 패턴은 시스템이 어떤 Concrete Class를 사용하는지에 대한 정보를 캡슐화한다.생성 패턴은 이들 클래스의 인스턴스들이 어떻게 만들고 어떻게 결합하는지에 대한 부분을 완전히 가려준다.생성 패턴을 이용하면 무엇

2022년 9월 14일
·
0개의 댓글
·
post-thumbnail

Decorator Pattern과 Kotlin by 키워드

대규모 객체지향 시스템에서 객체를 취약하게 만드는 문제는 구현 상속(implementation inheritance)에서 빈번하게 발생합니다. 하위 클래스가 상위 클래스의 세부 구현 사항에 의존하게 되면 상위 클래스의 내용이 변경될 때마다 하위 코드의 내용이 깨지고 오

2022년 8월 21일
·
0개의 댓글
·

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개의 댓글
·