https://www.youtube.com/watch?v=1dwx3REUo34 아래 내용은 위영상을 참고해서 작성했습니다 Observer pattern 개념 옵저버 패턴은 말그대로 감시자들이 한 곳을 계속해서 바라보고 있는 패턴입니다. 즉 감시자들이 이벤트 변화시 바로 반응할 수 있는 패턴이라고 볼 수 있습니다. Observer는 Subscriber, ...
> 빌더패턴은 오브젝트의 생성과정이 복잡할 때 간단화시켜주는 용도로 사용할 수 있는 패턴이다! (하나의 오브젝트를 만들기 위해 여러가지 아규먼트가 필요한 경우 등) > 고양이를 생각해보자. 고양이 객체를 만들 때 키, 몸무게, 색, 혈핵형, 이름 ... 등의 파라미터가 다수 필요하다고 가정해보자. 고양이 객체를 만들기 위해 아규먼트가 3개이상 들어가게...
> 100메가바이트 용량이 사용되는 강아지가 있다고 해보자 이 강아지를 1000마리 이상 만들게 되면 메모리 부족이 심각해질 수도 있다. 이러한 메모리 사용량을 줄이기위해 공통적인 특성을 공유해서 강아지객체를 만들어줄 수 있다. > 강아지를 만드는데 사용되는 대부분의 메모리가 DNA에 쏠려있다. 이러한 DNA메모리를 아끼기위해 static을 사용한다 ...
> Composite Pattern 을 통해 오브젝트들을 트리구조로 구성할 수 있다 > 컴포짓 패턴에서는 이러한 베이스 인터페이스를 component라고 부른다 그리고 하위 싱글 오브젝트를 Leaf, 하위 그룹 오브젝트를 Compsite라고 부른다. 그리고 그룹 오브젝트인 Compsite에는 또 다시 Component가 들어간다. 따라서 각 방에는 L...
> Visitor 패턴이란 오브젝트 Structure로부터 알고리즘을 분리해내는 방법이다. 이렇게되면 기존의 오브젝트 구조에 대한 수정없이 원하는 알고리즘을 자유롭게 적용시킬 수 있다 -> open/closed 원칙을 따르는 디자인패턴!
Iterator pattern은 여러 타입에 access를 가능하게 해주는 공통된 인터페이스를 제공한다. > Array, Tree, Hash, Set등 컨테이너의 타입과 관계없이 Iterator의 인터페이스만 가지고 같은 알고리즘을 적용시킬 수 있다! > 다음 칸을 가리키는 알고리즘을 프로토콜과 arrayContainer의 조합으로 위와 같이 구현할 수...
Abstract Factory 패턴은 매트릭스 관계를 가진 클래스 오브젝트를 생성할 때 유용하다. > 핵심은 각각의 테마를 가진 오브젝트를 하나의 팩토리에서 만든다는 것이다.
메멘토란 뜻은 사람이나 이벤트를 기억하기 위한 물건, 기념물이다. > 메멘토 패턴은 객체의 히스토리를 관리하고 싶을 때 사용한다. > 메멘토 패턴을 이용하면 객체의 상태를 특정 시점에 저장하고, 필요할 때 그 상태로 되돌릴 수 있다.
>하나의 인터페이스를 다른 인터페이스로 전환해준다. >어떤 클래스가 + 모양이고 클라이언트는 별모양의 인터페이스만 받을 수 있다면 Adapter패턴을 이용해 +모양 클래스를 별모양 클래스로 바꾸어준다. > Adapter는 바꿀 클래스를 감싸는 느낌이나서 wrapper라 불리기도한다.
> 책임의 개념을 갖는 객체들의 체인을 만드는 패턴이다 > 예를들어 현금, 신용카드, 현금카드 세 개의 결제방법을 else if문으로 만들었다고 해보자 > 이를 Chain of Responsibility 패턴을 사용한 뒤에 paypal 결제 방법을 추가하여야 한다면 단순히 모듈형식에 체이닝만으로 해결할 수 있다.