動態變化的OO設計

2021-09-06 14:40:09 字數 511 閱讀 1833

今天看到個題目:物件會動態的變化。

遊戲精靈,有人和神仙,但是隨著人的不斷積分,會公升級為神仙;神仙也可能會因為積分的減少而降級為人。這種情況怎麼畫出個類圖來。

這是第一版的設計,正常思維。人和神仙都是遊戲精靈,從is-a的角度來說是正確的。但是問題是,當人公升級為神仙的時候會出現:

var person=new 人();

//人公升級

person=new 神仙();

這個時候原來的人其實已經死掉了,這是不對的。第二版:

把角色抽象出來,只有一種遊戲精靈,但是他的角色是不一樣的,公升級或者降級以後只是角色的改變。

這種動態轉化的東西以前自己也沒有考慮過。仔細想想其實就是oo的原則:把變化的東西拿出來做抽象。

OO的設計原則

從網上找了一些資料覺得這個還可以 物件導向設計原則 物件導向設計的基石是 開 閉 原則。開一閉 原則講的是 乙個軟體實體應當對擴充套件開放,對修改關閉。這個規則說的是,在設計乙個模組的時候,應當使這個模組可以在不被修改的前提下被擴充套件。從另外乙個角度講,就是所謂的 對可變性封裝原則 對可變性封裝原...

OO 設計原則

msil msil是.net framework中最重要的概念之一。通過msil可以預知不同.net語言的執行效率應該是接近的。通過msil匯程式設計序 ilasm.exe 和msil反匯程式設計序 dilasm.exe 可以觀察.net應用的內部構造,因此也可以用於.net應用 元件的破解。ild...

OO設計原則

1.srp single responsibility principle 單一職責原則 單一職責原則強調乙個類只有乙個使它改變的原因.如果乙個類擁有n個職能,則它應該劃分為n個類.2.ocp closed for modification open for extension 開閉原則 開閉原則強...