《Clean Code》的总结:
总的说来数据结构指的就是数据的载体,暴露数据,而几乎没有有意义的行为,你应该在尖叫这不是贫血类?的确这和我们的贫血类很相似。最常见的应用在分布式服务,以wcf,webservice,reset之类的分布式服务中不可或缺的数据传输对象(DTO)模式,DTO(Request/Response)就是一个很典型的数据载体,只存在简单的get,set属性,并且更倾向于作为值对象存在。而对象则刚好相反作为面向对象的产物,必须封装隐藏数据,而暴露出行为接口,DDD中领域模型倾向于对象不仅在数据更多暴露行为操作自己或者关联状态。
虽然数据结构和对象之间看是细微的差别却导致了不同的本质区别:使用数据结构的代码便于在不改动现在数据结构的前提下添加新的行为(函数),面向对象代码则便于不改动现 有函数的前提下添加新的类。换句话说就是数据结构难以添加新的的数据类型,因为需要改动所有函数,面向对象的代码则难以添加新的函数,因为需要修改所有的类。在任何一个复杂的系统都会同时存在数据

本文探讨了数据结构与对象的区别,强调数据结构主要承载数据,而对象则封装行为。在面向对象编程中,数据结构的改变通常需要修改所有相关函数,而添加新函数则容易得多。反之,面向对象代码中,添加新类较简单,但修改现有函数可能影响广泛。迪米特法则在对象中起作用,但在数据结构中则不适用,因为数据结构通常不隐藏内部细节。软件开发中,过程式代码适合添加新函数,而面向对象代码利于添加新类。
最低0.47元/天 解锁文章
25万+





