c# - 类设计 - 带有公共设置器的 ctor 或属性
问题描述
非常简单的问题,假设我有一个具有 20 个引用类型属性的类,我知道这些属性只会在类创建时/类创建后立即设置,并且没有任何属性是真正强制性的。
在这种情况下,最佳实践是创建一个ctor
接受 20 个属性(因为它们都是引用类型,null
如果您愿意,仍然允许您通过)并确保我的所有属性都没有setter
或者 ...
根本没有一个ctor
,只是为setter
我的所有财产提供一个?
我倾向于后者,因为易于实现和(可以说)更简洁的代码,即使这不能保证对象不变性,但是这些类仅在内部使用,我知道无论如何我都不会更改它们。
编辑
如果你要投票结束这个问题,至少有礼貌地解释为什么你认为这个问题对于如此高的 SO 标准来说“不够好”。
如果这不是属于这里的问题,我真的不知道 SO 是为了什么。
解决方案
如果所有这些属性都不是强制性的并且它们不必是只读的,则不需要构造函数。没有人愿意调用带有 20 个参数的构造函数,尤其是在没有必要的情况下。
因此,即使这个问题往往是主观的,也要使用属性并省略构造函数。
推荐阅读
- javascript - 如何将对象数组映射到 React 中的不同组件道具?
- r - R Shiny:有条件地要求用户选择pickerInput
- reactjs - 如何使用 reactjs 实现模态
- python-3.x - 如何在另一帧中打印我在一帧中拍摄的条目
- r - 删除数据框中的“\N”值
- pseudocode - 正在做一个练习测试,并遇到了这个。z的值是多少?
- webpack - 如何使用 Nuxt 以编程方式导入/注入 scss 文件?
- asp.net - 80040154 类未注册
- java - 谷歌 oauth2 在春季启动时登录,null refreshToken,远程服务器失败,在本地主机中工作
- angular - Angular Syncfusion Scheduler - 将颜色设置为单个事件