c# - 如果大多数参数都是共享的,那么使用静态字段来限制构造函数参数的数量是不是很糟糕?
问题描述
实现下面提出的逻辑会是糟糕的设计吗?本质上,目标是限制我传递共享参数的次数
**// 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 怎么办?
推荐阅读
- python - 如何在 Django 模板中获得反向引用?
- r - R根据列数据创建箱线图
- elasticsearch - Kibana / Elastic - 不能使用数组字段
- loops - “ValueError:要解压的值太多(预期为 2)”不应在此处发生
- javascript - JavaScript - 通过 Flask 获取列表中的第 i 个元素
- reactjs - 在 TailwindCss 中动态构建类名
- c# - .Net Core Web API 分页列表 - 源“IQueryable”的提供程序未实现“IAsyncQueryProvider”
- flutter - Flutter Fitness 读取步数数据的插件
- c# - 更改源文件的位置
- python - 验证列表元素是否需要 X 时间在循环中运行