💡 팩토리 메서드란 객체 생성을 공장 클래스로 캡슐화 처리하여 대신 생성하게 하는 생성 디자인 패턴입니다. 자식 클래스들이 팩토리 메서드를 오버라이딩 해 생성될 객체들의 유형을 변경할 수 있도록 하는 패턴입니다. 즉, Client에서 직접 new 연산자로 객체를 생성하지 않고, 제품 객체들을 도맡아 생성하는 공장 클래스를 만들고, 이를 상속하는 공장 클래스 메서드에서 여러가지 제품 객체 생성을 각각 책임지는 것입니다. 팩토리 메소드 패턴은 객체를 만들어내는 공장(Factory 객체)을 만드는 패턴입니다. 어떤 클래스의 인스턴스를 만들지는 미리 정의한 공장 서브 클래스에서 결정합니다. 💡 팩토리 메서드 기본 구조 공장 객체와 제품 객체 간 느슨한 결합 구조로 이루어 집니다. 이와 같은 구조는 객체 간의 결..
전체 글
fac, si facis💡 비지터 패턴이란 방문자와 방문 공간을 분리해, 방문 공간이 방문자를 맞이할 때 이후 행동을 방문자에게 위임하는 패턴 알고리즘들을 그들이 작동하는 객체로부터 분리(캡슐화) 할 수 있도록 하는 행동 디자인 패턴입니다. "나는 동물원에 간다. 나는 ~를 한다" '나'라는 객체가 '동물원' 이라는 객체를 입력받은 후 동물원에서 무언가 한다는 건 일반적인 OOP 추상화입니다. 반면 비지터 패턴은 "동물원에 내가 갔다. 내가 ~를 하게 한다" '동물원' 이라는 객체가 '나'라는 객체를 입력 받은 후, '나'라는 객체의 행동을 호출하는 것입니다. 이 때 동물원에 대한 정보를 파라미터로 넘겨줍니다. 즉, 사용자는 방문자의 입장이 아니라 방문 공간의 입장에서 먼저 생각해보게 됩니다. 예를 들어 동물원에 있는 사자, ..
💡 옵저버 패턴이란 옵저버들이 관찰하고 있는 대상자의 상태 변화가 있을 때마다 대상자는 직접 목록의 관찰자들에게 통지하고, 관찰자들은 알림을 받아 조치를 취하는 행동 패턴 즉, 어떤 객체의 상태가 변할 때 그와 연관된 객체들에게 알림을 보내는 디자인 패턴입니다. 쉽게 이해하자면 유튜브나 스팸 메일로 비유할 수 있습니다. 유튜브 채널은 발행자(Subject)가 되고, 유튜브 구독자는 관찰자(Observer)가 되는 구조입니다. 만약 시청자에게 채널 정보를 전달한다면 시청자가 시간을 낭비하던지, 채널 주인이 알림을 원하지 않는 고객들에게 전달하며 자원을 낭비하게 될 것입니다. 구독자들은 해당 채널을 구독함으로써 채널에 어떠한 변화가 생기면 바로 연락을 받고 탐지하게 됩니다. 반면, 구독을 해지하거나 하지 않..