如果大多数参数是共享的,那么使用静态字段来限制构造函数参数的数量是否设计不佳?



实现下面提出的逻辑会是糟糕的设计吗?从本质上讲,目标是限制我传入共享参数的次数

**// Current implementation**
public class Configuration
{
public Configuration(Foo f, Bar b, Baz bz, Qux q, FooBar fb);
public Configuration(Foo f, Bar b, Baz bz, Qux q, BazQux bz);
}

Main
{
var configA = new Configuration(f, b, bz, q, fb)
var configB = new Configuration(f, b, bz, q, bz)
DoStuff(configA);
DoOtherStuff(configB);
}
**// Proposed implementation**
public class Configuration
{
static Foo f;
static Bar b;
static Baz bz;
static Qux q;
public Configuration(FooBar fb);
public Configuration(BazQux bz);
}
Main
{
Configuration.Foo = f; 
. . . 
var configA = new Configuration(fb)
var configB = new Configuration(bz)
DoStuff(configA);
DoOtherStuff(configB);
}

是的,这是一个糟糕的设计。 如果您需要创建一个使用不同 Foo 实例的不同配置 configC 怎么办?

相关内容

最新更新