[英]need many parameters on construction c++03
我有一個看起來有點像的物體
class Block{
Type1 member1;
Type2 member2;
Type3 member3;
...
//many many MANY members (hundreds, if not thousands)
}
我需要創建一種方便的方式來構造Block。
這需要構建器模式,但是如此處所示https://en.wikipedia.org/wiki/Builder_pattern似乎我將超過構造器上允許的最大參數數量。
我應該怎么做? 我寧願避免使用較小的塊。
謝謝
這里應該有設計問題,我認為您並沒有真正使用過數百名成員。 類應該設計得越簡單越好。 您應該提供此類的更多詳細信息。
我不認為您正在苦惱建造者模式。 定義一個配置對象。 定義單個方法來設置配置對象。 然后使用配置對象實例化對象。
class BlockCfg {
//...
void setMember1 (Type1 val);
void setMember2 (Type2 val);
//...
};
class Block {
Block (const BlockCfg &cfg);
};
您可以使BlockBuilder
成為Block
的friend
,然后讓BlockBuilder
函數直接修改成員數據,而不是將所有數據傳遞給構造函數。 缺點是Block
所有成員都是默認構造的,如果大多數類型都是內置的,這可能很好,但可能會很昂貴。
但是,在一個類中有數百名成員是一種巨大的代碼味道,您應該考慮重新設計。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.