程序人生
Mrkang1314
这个作者很懒,什么都没留下…
展开
-
重构——重新组织数据
Self Encapsulate Field(自封装字段) 简介访问变量的好处:子类可以通过覆写一个函数而改变获取数据的途径;还支持更灵活的数据管理方式,如延迟初始化。 直接访问变量的好处:代码比较容易阅读; 如果你想访问超类中的一个字段,却又想在子类中将对这个变量的访问改为一个计算后的值,这时候就应该进行“字段自我封装”。 值对象和引用对象之间的相互转换 值对象和引用对象 如果引用对象开始变得难以使用,也许就应该将它改为值对象,引用对象必须被某种方式控制,你总是必须向其控制者请求适当的引用对象。它们原创 2020-10-26 13:42:16 · 1083 阅读 · 0 评论 -
重构——在对象之间搬移特性
Move Method(搬移函数) 你的程序中,有个函数与其所驻类之外的另一个类进行更多交流:调用后者,或被后者调用;则在该函数最常引用的类中建立一个有着类似行为的新函数,将旧函数变成一个单纯的委托函数,或是将旧函数完全移除。 动机 如果一个类有太多行为,或如果一个类与另一个类有太多合作而形成高度耦合,就使用搬移函数,通过这种手段,可以使系统中的类更简单。 做法 检查源类中被源函数所使用的的一切特性,考虑它们是否也该被搬移; 检查源类的子类和超类,看看是否有该函数的其他声明; 在目标类中声明这个函数; 将原创 2020-10-19 16:48:24 · 407 阅读 · 0 评论 -
重构——重新组织函数
Extract Method提炼函数 动机 首先如果每个函数的粒度都很小,那么函数被复用的机会就更大;其次,这会使高层函数读起来就像一系列注释;再次,如果函数都是细粒度,那么函数的覆写也会更容易。 做法 创造一个新函数,根据这个函数的意图来对它进行命名(以它“做什么”来命名而是“怎么做”)。 将提炼出来的代码从源函数复制到新建的目标函数中。 仔细检查提炼出的代码,看看其中是否引用了**“作用域限于源函数”的变量**(包括局部变量和源函数参数); 检查是否有“仅用于被提炼代码段”的临时变量,如果有,在目标函原创 2020-10-19 13:53:17 · 282 阅读 · 1 评论 -
IDEA快捷键使用
编辑快捷键 快捷键 功能 Ctrl + Q 快速查看使用文档 Ctrl + O 当前类可以重写的方法 Ctrl + l 当前类可以实现的方法 Ctrl + Alt + T 选中代码,使用(if…else,try…catch等语句)环绕 Ctrl + / 单行注释或者取消单行注释 Ctrl + Shift + / 块注释或取消块注释 Ctrl + W 连续增加,选中一行代码 Ctrl + Shift + W 减少连续选中的代码,将当前选择减小到以前的状态 Ctr原创 2020-07-28 09:25:15 · 134 阅读 · 0 评论 -
《代码简介之道》读书笔记
有意义的命名 名副其实 不管是变量、函数或者类,它们的命名应该与它们要做的事有关; 避免误导 必须避免留下掩藏代码本意的错误线索; 别用accountList来指定一组账号,除非真的是List; 避免使用名称太过相似的字符串; 避免使用单个“O”或“l”单个字符表示变量名; 使用可搜索的名称 名称长短应与其作用域大小相对应,比如在方法中的局部变量名可以使用单个字符表示,若是整个类或者类外引用需要使用大写短语表示,便于搜索。 避免思维映射 避免将想要表达的英文变量名映射成的那个字符,不便阅读; 类名 类名原创 2020-07-10 16:08:52 · 214 阅读 · 0 评论 -
clean code——对象和数据结构的区别
对于对象需要隐藏其实现,但是并非只是对变量加上get、set操作这么简单,隐藏实现关乎抽象,类并不简单地用取值器和赋值器将其变量推向外间,而是暴露抽象接口,以便用户无需了解数据的实现就能操作数据本体。 数据、对象的反对称性 对象把数据隐藏于抽象之后,暴露操作数据的函数; 数据结构暴露其数据,而没有提供有意义的函数; 过程式代码便于在不改动既有数据结构的前提下添加新函数。 面向对象代码便于在不改动既有函数的前提下添加新类,开闭原则,对修改关闭对扩展开放 得墨忒耳律 模块不应了解它所操作对象的内部情形,类C的原创 2020-07-10 16:06:32 · 234 阅读 · 0 评论