목록2024/01/29 (3)
개발하는 리프터 꽃게맨입니다.
1. 개요 빌더 패턴은 복잡한 객체의 생성 과정과 표현 방법을 분리하여 다양한 구성의 인스턴스를 만드는 생성 패턴입니다. 생성자에 들어갈 매개 변수를 메서드로 하나하나 받아들이고 마지막에 통합 빌드해서 객체를 생성하는 방식이죠. 예를 들어서 몬스터를 만들어낸다고 생각합시다. 몬스터는 종족, 공격력, 체력, 방어력 등 많은 매개변수를 가지고 있습니다. 이것들을 커스텀해서 생성하는 방식을 지원하는 것이 빌더 패턴입니다. 2. 예제 주석에 적힌대로 위와같은 형식으로 생성을 한다면 어떤 매개변수를 설정하는지 명확하지 않습니다. 이런 식으로 따로 생성을 위한 빌더를 정의해서 사용하면, 몬스터에 대한 청사진도 만들 수 있고, 명확하게 매개변수를 전달할수도 있습니다. 이렇게 청사진을 만들어놓고 빌드자체를 나중에 따로..
1. 개요 커맨드 패턴은 행동 디자인 패턴 중 하나로, 행동을 객체화 하는 것이 목표입니다. 명령을 인터페이스로 하여 하위에 구체적인 명령을 재정의합니다. 명령들을 객체로 캡슐화해서 사용할 수 있도록 하는 패턴을 뜻합니다. 2. 기본 구조 커맨드 패턴은 이벤트가 발생했을 때 실행될 기능이 다양하면서도 변경이 필요한 경우 유용합니다. 예를들어 게임에서 캐릭터에게 단축키 설정을 할 수 있는 경우가 있죠. WASD로 기본적으로 이동할 수 있지만, 사용자에 따라서 IJKL 로 이동하고 싶은 사람도 있을테니 말이죠. 또, 여러 커맨드를 조합하여 하나의 커맨드처럼 사용해야할 때, 커맨드 실행 취소 및 재실행 등의 기능을 구현해야 할 때 유용합니다. 이런 식으로 코딩하는 것을 막는 디자인 패턴이죠. 3. 예제 이렇게..
1. 개요 옵저버 (혹은 관찰자, 리스너) 패턴은 객체의 상태 변화를 관찰하는 관찰자를 두어, 어떤 객체의 상태가 변하면, 그와 연관된 객체들에게 알림을 보내는 패턴입니다. 옵저버 패턴을 활용하면 연관된 객체가 어떤 객체의 상태가 변할시 별도의 함수 호출 없이 즉각적으로 알 수 있기 때문에, 이벤트에 대한 처리를 해야할 경우 유용하게 사용됩니다. 예를들어 플레이어가 열쇠 4개를 모으면 문이 열리는 게임이 존재한다고 해봅시다. 플레이어가 문에 대한 정보를 알고있고 문에대해서 직접 이벤트를 처리해주는 것은 OOP 의 설계 원칙과는 맞지 않습니다. 플레이어가 홀로 너무 많은 일을 떠맡고 있는 것이죠. 그래서 플레이어에게 옵저버를 두어, 플레이어가 열쇠를 획득할 때마다 옵저버들에게 열쇠를 획득했다고 알리는 설계..