我正在努力遵循 SOLID 原则进行设计。我发现,当您使用“单一职责原则”(SOLID 的 S)时,您通常必须在数据容器和数据处理器之间划分类。例如,如果我有一个具有 5 个属性的类 person,它是从数据库读取的,而不是将所有内容都放在一个类中,我会创建一个包含这些属性的 Person 类,以及另一个从数据库读取该信息并创建 Person 的 PersonReader 类。
如果我这样做,我必须打开 Person 属性,以便 PersonReader 可以访问它们,但与将所有内容放入黑盒子并使属性只读相比,我的封装性要少。
我错过了什么还是这个原则的缺点?
提前致谢
编辑:我已将个人作者更改为个人读者,因为一开始就不需要公开属性设置者。
大多数数据访问策略(ORM 技术)都涉及您所描述的那种妥协。侵入性最小的实体在需要时(例如,当不存在公共设置器时)使用反射(或内省等)来填充实体。
话虽如此,如果您的实体只是数据容器(如贫血域模型 http://martinfowler.com/bliki/AnemicDomainModel.html),单一责任原则不应该让您真正关心,因为您的对象没有会被数据访问代码破坏(或干扰)的复杂逻辑。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)