close
好觸發
EX: 即時戰略中 士兵 拿 弓 射 馬
EX: 即時產線中 生產設備 產 泡麵 到 貨車
那觸發點在哪?
最好
EX: 即時戰略中 士兵 拿 弓 射 馬
EX: 即時產線中 生產設備 產 泡麵 到 貨車
那觸發點在哪?
最好
這樣的邏輯要怎麼對應到物件的關係上? 好,士兵是一個類別,那隻箭也是,那匹馬也是,應該不難,現在問題來了,攻擊的邏輯 (就是要減多少血那個部份) 是要放在士兵,箭,還是馬?乍看之下好像沒什麼差別,但其實這個決定會影響程式的維護性。如果放在箭上的話,那箭的攻擊邏輯就必須要知道他要攻擊的對象, 比方說如果攻擊對象的話換成是坦克車的話,弓箭造成的損傷就要改變。所以無形中弓箭的類別就會跟其他所有單位的類別形成了相依性,這是不好的因為類別間的 相依性越高,一般來講程式碼就越難維護或擴充。曹老師後來是說應該是要放在馬上面,讓馬的類別處理,我想這樣的話馬自己負責自己被攻擊的邏輯,感覺上類別 之間的關係比較鬆散 (通常是件好事)。不過我後來想想其實這樣還是沒有解決相依性的問題啊,這樣的話馬本身還不是需要知道它是被什麼攻擊....雖然說我沒有寫過即時戰略遊 戲的經驗,但我想我會這麼作吧,會有一個固定的公式 (會將 "可被攻擊的物件" 幾個屬性,比如說防禦力之類的算在裡面) 來算出損傷,這樣的話所有 "會攻擊的物件" 的攻擊方法其實都是一致的,只會因 "可被攻擊的物件" 不同而改變。
還有老師最後還有出一題給大家回家思考,請問以下這兩組東西,如果要你畫出類別關係圖,要怎麼畫?
樹、紙、海報
烏龜,石頭,筆
感覺上有點像腦經急轉彎...海報繼承至紙,紙繼承至樹? 那烏龜,石頭,筆勒?我是還沒深入去想,不過我的認知中物件導向程式設計中,物件其實代表的是行為 (Behaviour) ,所以真正的問題可能是『樹、紙跟海報之間有相同的行為嗎?』全站熱搜