對象作為參數傳遞給方法,方法內部把對象的部分屬性修改了,在面向接口編程的情況下,方法調用結束后,怎么能知道哪些屬性被修改了?在開發和后期維護閱讀代碼時都是令人很頭疼的。僅對于對象作為參數傳遞,有沒有更好的方式或者想法呢。
1 回答

紫衣仙女
TA貢獻1839條經驗 獲得超15個贊
一個對象,交于一個方法(不論是誰的方法)來處理的時候,肯定涉及到被讀取、甚至是修改。如果是調用者不應該修改,卻做了修改的操作,這本身就是代碼寫得有問題,必須要檢查出來,并且給予修正。如果條件不允許檢查出代碼并修改,同時又要保證執行之后,對象保持原樣,那么,你只能deepcopy一份對象,將deepcopy出來的對象交于這個方法處理,以此來保證原有的對象。還有一種情況,不知道你是不是這樣的需求,就是,希望編碼這個方法的人,操作這個對象的時候,本身就操作不了,如果是這樣,你只能使用富血對象,也就是,幾乎所有對這個對象的操作,都封裝在這個對象的內部,然后這個對象的屬性使用public string Name{get;private set;}來實現。這樣,如果你把這個對象,傳給了其它對象的方法,他們是無法操作Name這個屬性的,但是,這樣開疑增加了項目的復雜度,但是,在實現沒有辦法的情況下,也只能通過這種方式來實現。
- 1 回答
- 0 關注
- 600 瀏覽
添加回答
舉報
0/150
提交
取消