[英]Why do we sometimes prefer having data structures over objects?
正如罗伯特·马丁(Robert Martin)的《 清洁法》所说:
对象将其数据隐藏在抽象后面,并公开对该数据进行操作的函数。 数据结构公开其数据,并且没有有意义的功能。
但他也提到:
程序代码(使用数据结构的代码)使添加新功能变得容易,而无需更改现有数据结构。 另一方面,使用OO代码,可以轻松添加新类而不更改现有功能。
和:
...这样的混合体很难添加新功能,但是也很难添加新的数据结构。 他们是两全其美的。 避免创建它们。
上面的混合表示数据结构和对象之间的混合。
但是,似乎数据结构存在冲突:使用数据结构的优点是可以更轻松地添加函数,但是对于数据结构,我们最好不要在其中添加函数。 那么拥有数据结构的意义何在? 例如DTO(数据传输对象)是使用数据结构而非使用对象的示例之一。 最好不要在吸气剂中添加很多逻辑,这始终是一个好习惯。 - 但为什么?
你误会了鲍伯叔叔的话。
使用数据结构的优点是可以更轻松地添加功能
不,应该这样: 分离数据结构和功能的优点是使添加功能更加容易。
当数据结构和功能分开时,您可以添加新功能而不会破坏旧功能。 相反,当将数据结构和功能捆绑到单元(如OOP中的类)时,添加新功能(方法)将破坏所有旧单元/类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.