gpt4 book ai didi

c# - 单独的选项类、重载构造函数或具有默认值的公共(public)属性?

转载 作者:行者123 更新时间:2023-11-30 22:31:24 25 4
gpt4 key购买 nike

我一直在做一个项目,我有一个 Worker 类,它以多线程方式生成大量数据。数据的类型、大小和位置根据可由最终用户设置的大量参数而变化。从本质上讲,这是一个大型测试工具,我用它来研究某些事物如何根据数据的变化而执行。现在我至少有 12 个不同的 Worker 类参数。我正在考虑切换到包含所有这些值的单独的 WorkerOptions 类,然后让 UI 创建 WorkerOptions 对象,然后将其传递给 Worker。但是,我也可以在 Worker 类上公开公共(public)属性,以允许在创建 Worker 时适本地设置选项。

解决此问题的最佳方法是什么,为什么?我相信这会产生一些不同的意见,但我愿意倾听关于为什么不同的人可能会以不同的方式做事的争论。需要考虑的一些事情是,目前一旦一个 Worker 创建并运行,它的配置就不会改变,除非它停止。这可能会发生变化,但我认为不会。

编辑我通常不是 C# 开发人员,我的知识足以编写能够正常运行并遵循常见设计模式的应用程序,但我的专长是 SQL Server,因此我可能会提出后续问题以阐明您的意思。

最佳答案

我的准则是,使用实例所必需的参数应该在构造函数中传递,所有“可选”参数都应该是属性。

属性当然会在构造函数中初始化为它们的默认值。

如果参数数量不多,我会使用默认值参数,但 12 个已经够多了。

我忘了提到选项的单独类。大多数情况下我不会做这样的事情,除非选项中有一些“业务逻辑”(比如检查某些选项组合是否可行)。如果它只是为了存储,您最终会得到很多对此选项类(实例)的额外引用。

关于c# - 单独的选项类、重载构造函数或具有默认值的公共(public)属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9262840/

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