CleanCode CH5 CH6
来源:互联网 发布:ps拾色器快捷键 mac 编辑:程序博客网 时间:2024/05/16 12:58
CH5 格式
代码格式很重要,原始代码修改很久后,可能代码不存在了,但是代码行文风格还是保留。
垂直格式
相关函数,调用者应该尽可能的放在被调用者的上方。
概念相关放在一起。
横向格式:
CH6 对象与数据结构
1 隐藏并非只是在变量之间放上一个函数层这么简单,隐藏实现关乎抽象。类并非简单实用取值,赋值函数,而是暴漏对象接口,以便用户不用了解数据实现,就能操作数据。
所以要以最好的方式呈现某个对象包含的数据,需要严肃的思考。
2 面向过程与面向对象
过程式的代码(使用数据结构的代码)便于在不改动数据结构的前提下添加新函数;
面向对象的代码(类,多态)便于不修改既有函数的前提下添加新类。
反过来:
过程式代码不适用与增加新的数据结构,因为所有的既存的任何函数都需要适应新的数据结构的实现。
面向过程的代码不适用于增加新函数,因为既存的所有类都需要添加新方法。
所以选择的时候需要根据具体情况而定。
3 law of demeter
方法不应该调用有任何函数返回对象的方法,只跟朋友讲话,不与陌生人谈话。
比如 final String outputdir = ctxt.getOptions().getScratchDir().getAbsolutePath();
正确的做法是让服务提供者,提供完整的服务,而不是到处去找。
比如上述的问题,可以试着看看这个outputdir使用者是怎么使用的,我们发现这个就是用这个目录来创建一个临时文件的,
正确的做法就是 bufferoutputstream = ctxt.createscratchFileStream(filename), 这个例子表示我们确实需要抽象出来,而不是仅仅返回类中的数据。
- CleanCode CH5 CH6
- CleanCode
- CleanCode CH7
- 为什么cleancode
- ch6 抽象
- Ch6-Queue_Array
- Ch6-Queue_Linked
- ch6-模块
- ch5优化
- CleanCode笔记---有意义的命名
- think in java ch6
- ch6 递归 --三角数
- California Mathmetics-G6-Ch6
- CPP_Primer CH6--抽象容器
- Ch6 动态SQL
- ch6 类再生
- ch6.正则表达式
- tomcat学习笔记CH6
- archlinux x64下安装手动安装goagent
- C 与指针摘记
- Struts2学习笔记之<s:token/>防止表单重复提交
- SSRS创建复合型图表
- 有汉字的汉字首个字母方法(js)
- CleanCode CH5 CH6
- c语言参数传递问题
- 更新计划!!!
- Constant Memory in CUDA
- 开漏输出
- TCMalloc源码阅读(四)--ThreadCache分析之空闲内存链表
- liunx2.6.28内核增加自己的系统调用
- 第11周项目8-&图
- 守卫者的挑战-(概率dp)Poetize系列