2011-05-24 87 views
0

創建和初始化具有多個只讀屬性的類的實例的優雅方法是什麼?傳遞構造函數中的所有值不會很方便。創建具有幾個只讀屬性的類的實例

目的是在初始化後實例是不可變的。但是,如果構造函數不用於初始化所有屬性值,那麼只讀屬性如何從另一個類中更改?

回答

1

它們是隻讀的,以便它們在施工後不能修改。此行爲是設計使然。

如果你想減少參數個數有一個看看Parameter Object Pattern

+0

該類本身已經充當參數對象!但是就像模式描述所暗示的,對不同的常見用例和/或增變器方法使用多個構造函數可能是有用的想法。 +1模式。 – Peladao 2011-05-25 08:04:13

+0

我想我可以將這個類分成一組ParameterObject來分組相關的參數。 – Peladao 2011-05-25 08:05:45

0

你有兩個選擇

  1. 創建一個公共子更新初始化後的變量,或將更新添加到另一個該類的私有方法內的代碼部分。

  2. 您使用反射來更新私有變量值。

第一種方式是迄今最好的選擇,秒是黑客。