在我以前的旧C++工作中,我们总是非常谨慎地封装成员变量,并且只在绝对必要时将它们作为属性公开.我们有真正特定的构造函数,确保在使用之前完全构造对象.
现在,使用ORM框架,依赖注入,序列化等,似乎你最好只依赖于默认构造函数并在属性中公开类的所有内容,这样你就可以注入东西,或者构建和填充对象更动态.
在C#中,使用Object初始化器更进一步,这使您能够基本定义自己的构造函数.(我知道对象初始化器不是真正的自定义构造函数,但我希望你明白我的意思.)
对这个方向有任何普遍关注吗?似乎封装开始变得不那么重要,有利于方便.
编辑:我知道你仍然可以仔细封装成员,但我只是觉得当你想要创建一些类时,你要么坐下来仔细考虑如何封装每个成员,或者只是将它作为属性公开,并担心以后如何初始化.这些日子似乎最简单的方法是将事物作为属性暴露,而不是那么小心.也许我只是错了,但这只是我的经验,特别是新的C#语言功能.