Clean Code --第六章

对象和数据结构

Paste_Image.png

6.1 数据抽象
更愿意用抽象状态表述数据,这并不只是用接口和赋值器,取值器就万事大吉,要以更好的方式呈现某个对象包含的数据,需要作出严肃的思考。傻乐着乱加取值器和赋值器,是最坏的选择

6.2 数据、对象的反对称性
对象与数据及结构之间的二分原理: 过程式代码(使用数据及结构的代码)便于在不改动既有数据及结构的前提下添加新函数,面对对象代码便于在不改动既有函数的前提下添加新类。
反过来也说的通: 过程式代码难以添加新数据结构,因为必须修改所有函数。面对对象代码难以添加新函数,因为必须修改所有类。
6.3得墨忒(tui)耳律
https://en.wikipedia.org/wiki/Law_of_Demeter#In_object-oriented_programming
维基百科的解释
模块不应了解它所操作对象的内部情形。
类C的方法f只应该调用以下对象的方法:
*C
*由f创建的对象;
*作为参数传递给f的对象;
*由C的实体变量持有的对象。
方法不应调用由任何函数返回的对象的方法。换言之,只跟朋友谈话,不与陌生人谈话。
6.3.1 火车失事
6.3.3 隐藏结构
6.4 数据传输对象
最为精炼的数据结构,是一个只有公共变量。没有函数的类,这种函数结构有时被称为数据传送对象,或DTO(Data Transfer Objects)
6.5 小结

Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,637评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,001评论 19 139
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,219评论 30 472
  • 从小到大我读过的书很多,下面我来给大家推荐一本书《益智动物故事》这本书里有很多小动物,下面我来说一下我最喜欢的小动...
    8b9542e8809c阅读 395评论 0 0
  • 今天为新手解决下APP中的文字和APP名字的国际化多语言处理, 不多说了,直接上步骤: 1、打开你的项目,单机pr...
    点火柴的小男孩阅读 734评论 0 2