你如何編寫對象的特殊情況?管理對象間關係
例如,假設我正在編碼一個RPG - 有N = 5個類。矩陣中有N^2個關係,用於確定角色A是否可以攻擊(或使用M的能力)角色B(現在忽略其他因素)。
我該如何在OOP中編寫代碼而不將特殊情況遍佈整個地方?
另一種方式把它是,我有話也許
ClassA CharacterA;
ClassB CharacterB;
if (CharacterA can do things to CharacterB)
我不知道那裏面發生的事情if語句,而是它是
if (CharacterA.CanDo(CharacterB))
或元類
if (Board.CanDo(CharacterA, CharacterB))
CanDo函數應該依賴於ClassA和ClassB,還是具有ClassA/ClassB的屬性/修飾符?
對不起,字面上「看」 - 說一個巫師對狼人是不可見的。 – Timmy 2009-06-04 04:32:40
在這種情況下,有特殊情況是不可避免的。它可以通過一個規則集來緩解,這個規則集存儲在一個表,哈希集合中,但是當它完成所有的說明和完成時,程序必須在某個地方引用A類> B類或者具有不同的能力和能力,等等...... – 2009-06-04 04:34:40