码迷,mamicode.com
首页 > 其他好文 > 详细

02重构_改善既有代码的设计阅读笔记之二

时间:2015-06-23 00:41:42      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

02重构_改善既有代码的设计阅读笔记之二

这本书的核心是一份完整的重构名录,其中每一项都介绍一种经过实证的代码变换手法(code transformation)的动机和技术。某些项目如Extract Method和Move Field看起来可能很浅显,但不要掉以轻心,因为理解这类技术正是有条不紊地进行重构的关键。本书所提的这些重构准则将帮助你一次一小步地修改你的代码,这就减少了过程中的风险。很快你就会把这些重构准则和其名称加入自己的开发词典中,并且朗朗上口。

书中的一些东西说得太绝对,比如说看到switch就重构,但这是不现实的,比如说Android开发,菜单的onOptionsItemSelected,这个肯定是重构不了的;对于很多控件的onClickListener,还是统一设置一个Listener并通过ViewID区分方便点,尤其是在Adapter的getView中,针对每个控件new一个onClickListener会生成太多对象。当然,不是说这个重构手法无效,而是这个手法提醒我们,当看到这样的情况时需要认真考虑一下,当前的情况是否需要重构,如果确定不需要,就那样好了。

但是有些东西还是很值得注意的,比如封装集合(Encapsulate Collection),当调用者请求一个类的一个集合对象时,我们最好不要返回这个集合对象,而是返回这个集合对像的一个不可修改的副本,并增加添加/移除数据的函数。比如Android开发的Adapter,我们经常会为了方便给Adapter添加返回数据集合与设置数据集合的方法,但这是不安全的,我们不能确定调用者获得这个集合后会做什么事情,如果调用者修改了这个集合的内容我们也对其一无所知,在Android中,如果调用者在非UI线程获得了Adapter列表的数据并修改是会出问题的。

 

02重构_改善既有代码的设计阅读笔记之二

标签:

原文地址:http://www.cnblogs.com/itlangguojie/p/4594231.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!