현재 내 게임에 플레이어에게 피해를 주는 객체는 monster과 bomb 두가지이다.
둘 다 RandomMovableObject 추상 클래스를 상속받고, 코드가 동일하다.
팩토리 패턴을 사용해서 이렇게 비슷하게 생성되는 객체들을 통합해서 관리할 수 있다.
팩토리 패턴이란?
객체 생성을 캡슐화해서, 객체 생성 로직을 클라이언트 코드와 분리하는 디자인 패턴이다.
객체 생성 코드를 중앙 집중화해서 유지보수성을 높이고, 객체 생성을 유연하게 관리 가능하다. 또한 새로운 객체 타입을 추가하려면 팩토리 클래스에 새로운 조건과 생성 코드를 추가하면 되므로 확장성까지 보장된다.
팩토리 패턴의 구조는 Creator, Product, Concrete Product로 이루어져있다.
Creator는 Factory 클래스로, 객체 생성을 담당하는 클래스다.
Concrete Product는 Product 인터페이스나 상위 클래스를 구현하는 실제 객체다. 사진에 보이는 Monster와 Bomb클래스가 이에 속한다.
Product는 생성 대상 객체이다. 팩토리에서 생성되는 객체의 인터페이스 or 상위 클래스다.
현재 Monster와 Bomb은 RandomMovable과 HpConsumable 인터페이스를 상속받는 RandomMovableObject 추상 클래스를 상속받으므로 이것들이 Product라 볼 수 있다.
factory 클래스다. 이제 이것을
game 클래스에서 팩토리 메서드를 호출해서 사용하면 된다.
패턴을 생각해서 적용하는 건 처음인데 꽤 재밌다 ㅋㅋ
'Coding > JAVA + game' 카테고리의 다른 글
JAVA - 디자인 패턴 정리 (3) | 2024.11.12 |
---|---|
JAVA - 용어 정리<2> (1) | 2024.11.11 |
객체 지향 실습 - 게임에 적용 (5) | 2024.11.09 |