gpt4 book ai didi

c++ - 构造函数的参数数量

转载 作者:IT老高 更新时间:2023-10-28 12:34:26 25 4
gpt4 key购买 nike

我有一个类需要 12 个参数才能传递给它的构造函数。所以我觉得这个类的设计有问题。

我想问是否有任何设计模式或关于类设计的一般规则集合,尤其是它的构造函数。

最佳答案

12 个参数对我来说听起来确实太多了。减少其数量的选项是:

  1. Introduce Parameter Object通过将逻辑相关的参数分组到一个对象中并传递该对象而不是单个参数。

  2. 介绍一个Builder (可选 method chaining )。这不会减少实际参数列表,但会使代码更具可读性,如果您有多个不同参数的不同创建场景,则特别有用。所以不是

    MyClass someObject = new MyClass(aFoo, aBar, aBlah, aBaz, aBorp, aFlirp, 
    andAGoo);
    MyClass anotherObject = new MyClass(aFoo, null, null, aBaz, null, null,
    andAGoo);

    你可以拥有

    MyClass someObject = new MyClassBuilder().withFoo(aFoo).withBar(aBar)
    .withBlah(aBlah).withBaz(aBaz).withBorp(aBorp).withFlirp(aFlirp)
    .withGoo(aGoo).build();
    MyClass anotherObject = new MyClassBuilder().withFoo(aFoo).withBaz(aBaz)
    .withGoo(aGoo).build();
  3. (也许我应该从这个开始 ;-) 分析参数 - 构造函数中是否真的需要所有参数(即强制)?如果参数是可选的,你可以通过它的常规 setter 而不是构造器来设置它。

关于c++ - 构造函数的参数数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4592352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com