亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對象作為參數傳遞的疑問?

對象作為參數傳遞的疑問?

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

1 回答

?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

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


查看完整回答
反對 回復 2018-08-25
  • 1 回答
  • 0 關注
  • 600 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號