기존 코드를 많이 수정할 필요가없는 게임용으로 쉽게 확장 할 수있는 아이템 시스템을 디자인하고 싶습니다. 나는 새로운 효과를 가진 아이템을 즉시 추가하고 싶다.어떤 디자인 패턴을 사용해야합니까?
내 항목 공통점이 같은 특성
그것을 경우 , 전투에서 사용할 수 경우 이름이 장착 될 수있는 경우 설명, NPC의 판매 가격, , 필요한 수준, 전투 외에서도 사용할 수 있습니다. 쿨 다운
그래서 이것을 이미 클래스로 캡슐화 할 수 있습니다. 하지만 이제는 아이템 효과가 있습니다.
예 : 치유가, 가 이 무장에 X 스탯 포인트를 제공, 는 버프 X를 추가, 디버프 X를 제거, 건강 포인트, 치유 마나 포인트를 X X 장착 는 다른 효과를 만들 수의 X %의 확률,
다음과 같이 결합 할 수 있습니다. x 생명력과 마나를 치료할 수 있습니다. 처음 네 개는 사용 가능한 아이템이 가질 수있는 효과의 예이고, 마지막 두 개는 장비 아이템이 가질 수있는 효과의 예입니다.
아이디어는 데이터베이스에도이 구조가 있고 내 데이터베이스에 새로운 효과 조합이 포함 된 새 항목을 추가 할 수 있으며 내 코드는이를 읽은 다음 새로운 멋진 항목으로 구성합니다. 나를 많이 수정하지 않고. 코드 수정이 필요한 경우는 새로운 효과를 분명히 추가 할 때뿐입니다.
어떻게 이것을 디자인 패턴으로 조합 하시겠습니까?
나는 꾸미기를 생각했다. 이 디자인을위한 다른 디자인 패턴이 더 좋을까요 아니면 여러 디자인 패턴을 조합 한 것일까 요?
리팩토링에 당신이 올 때 당신이 결정을 내리는 데 도움이 (그리고 결합 효과에 대한 코드를 중복)해야한다. 조합이 많고 한 번에 최대 2 개의 효과 만 조합 할 수있는 경우 2 개의 ID를 사용할 수 있습니다. OOP 부분에서는 각 항목에 대해 Effect 인터페이스를 구현하는 개체 목록을 가질 수 있습니다. – nhahtdh