上一页 1 2 3 4 5 6 7 8 9 ··· 19 下一页
摘要: 理解:提取子类就是把基类中,不是所有子类或者只有少数子类用到的方法,提取出来,调整到子类中去。 详解:下面的代码中我们用到一个单一的类Registration,来处理学生选课信息。 从上面的代码我们可以看到有两种不同的上下文关系,我们意识到我们会在两种不同的上下文中使用Registration类,N 阅读全文
posted @ 2016-04-09 23:35 IT少年 阅读(537) 评论(0) 推荐(0)
摘要: 理解:本文中的“提取工厂类”是指如果要创建的对象很多,则代码会变的很复杂。一种很好的方法就是提取工厂类。 详解:一般来说我们需要在代码中设置一些对象,以便获得它们的状态,从而使用对象,所谓的设置通常来说就是创建对象的实例并调用对象的方法。有时如果要创建的对象很多,则代码会变的很复杂。这便是工厂模式发 阅读全文
posted @ 2016-04-09 23:25 IT少年 阅读(512) 评论(0) 推荐(0)
摘要: 理解:本文中的“使用条件判断代替异常”是指把没有必要使用异常做判断的条件尽量改为条件判断。 详解: 重构前代码: 重构后的代码如下所示,try catch 做条件判断的语句改成了if return 的方式,这样在很多程度上统一了代码的书写,同时也提高了性能。 这个重构在项目代码中也经常用到,因为对于 阅读全文
posted @ 2016-04-09 23:16 IT少年 阅读(541) 评论(0) 推荐(0)
摘要: 今天的重构来自 Martin Fowler的http://refactoring.com/catalog/extractSuperclass.html。 理解:本文中的“提取父类”是指类中有一些字段或方法,你想把它们提取到父类中以便同一继承层次的其它类也可以访问他们,这个和之前的很多重构有异曲同工之 阅读全文
posted @ 2016-04-09 23:11 IT少年 阅读(666) 评论(0) 推荐(0)
摘要: 今天受邀参加了2016年ThoughtWorks公司成都分公司的2016年第一期DNA活动。 什么是DNA? DNA 即 Design And Analysis。设计与分析。这个活动主要是针对产品经理的,我一个码农也去参加了,多多少少还是有一些收获。 ThoughtWorks这家公司给我的印象是很不 阅读全文
posted @ 2016-04-09 22:45 IT少年 阅读(354) 评论(0) 推荐(0)
摘要: 理解:本文中的“封装条件”是指条件关系比较复杂时,代码的可读性会比较差,所以这时我们应当根据条件表达式是否需要参数将条件表达式提取成可读性更好的属性或者方法,如果条件表达式不需要参数则可以提取成属性,如果条件表达式需要参数则可以提取成方法。 详解:重构前code PerformCoolFunctio 阅读全文
posted @ 2016-04-07 11:05 IT少年 阅读(384) 评论(0) 推荐(0)
摘要: 理解:移除重复的代码,顾名思义就是把多处重复的代码搬移到一个公共的地方,来减少代码量,提高代码可维护性。 详解:看下面的例子就很容易理解 重构前code 可以看到 Actived=true,DateArchived=DateTime.Now 在两个方法中都要用到,我们就可以把这连个字段提取出来,放到 阅读全文
posted @ 2016-04-07 10:52 IT少年 阅读(433) 评论(0) 推荐(0)
摘要: 理解:面向对象的五大特征: SOLID,其中S就是职责单一原则。分离职责指当一个类有许多职责时,将部分职责分离到独立的类中,这样也符合面向对象的五大特征之一的单一职责原则,同时也可以使代码的结构更加清晰,维护性更高。 详解:依然看下面的例子。 befor reflector 可以看到,Video类有 阅读全文
posted @ 2016-04-07 10:44 IT少年 阅读(343) 评论(0) 推荐(0)
摘要: 理解:本文中的“提取方法对象”是指当你发现一个方法中存在过多的局部变量时,你可以通过使用“提取方法对象”重构来引入一些方法,每个方法完成任务的一个步骤,这样可以使得程序变得更具有可读性。 详解:如下代码所示,Order 类中的Calculate方法要完成很多功能,在之前我们用“提取方法”来进行重构, 阅读全文
posted @ 2016-04-07 10:19 IT少年 阅读(649) 评论(0) 推荐(0)
摘要: 理解:“分解依赖” 是指对部分不满足我们要求的类和方法进行依赖分解,通过装饰器来达到我们需要的功能。 详解:今天我们所讲的这个重构方法对于单元测试是非常有用的。如果你要在你的代码中加入单元测试但有一部分代码是你不想测试的,那么你应用使用这个的重构。 这个例子中我们客户端使用了一个静态类来完成部分工作 阅读全文
posted @ 2016-03-25 10:48 IT少年 阅读(519) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 19 下一页