实现下面提出的逻辑会是糟糕的设计吗?从本质上讲,目标是限制我传入共享参数的次数
**// 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 怎么办?