E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
31天重构
31天重构
指南之十八:使用条件判断代替异常
今天要说的重构来自于我日常工作中的发现而不是其它的什么地方,我在日常工作中经常使用这个重构,我想针对今天要解决的问题可能还有其它的解决方案。 在日常的编码中我们经常需要用到异常来控制程序流,下面的代码就是一个例子: 1: public class Microwave 2: { 3: private IMicrowaveMotor
·
2015-10-30 13:10
异常
31天重构
指南之十六:封装条件
有时当我们的条件关系比较复杂时,代码的可读性会比较差,所以这时我们应该根据条件表达式是否需要参数将条件表达式提取成可读性更好的属性或是方法,如果条件表达式不需要参数则可以提取成属性,如果条件表达式需要参数则可以提取成方法。下面是我们来看一段重构前的代码: 1: public class RemoteControl 2: { 3:
·
2015-10-30 13:10
重构
31天重构
指南之十四:分离职责
当一个类有许多职责时,将部分职责分离到独立的类中可以更好的遵守“类的单一职责原则”,使用“分享职责”这个重构非常简单,让我们来看下面的代码: 1: public class Video 2: { 3: public void PayFee(decimal fee) 4: { 5: } 6: 7:
·
2015-10-30 13:09
重构
31天重构
指南之十三:提取方法对象
这篇文章要说的重构来自于Martin Fowlwrs的重构列表,你可以在这里查看原始描述 这是一个不常用的重构。当你发现一个方法中存在过多的局部变量时,你可以通过使用“提取方法对象”重构来引入一些方法,每个方法完成任务的一个步骤,这样可以使得程序更具有可读性。 1: public class OrderLineItem 2: { 3:
·
2015-10-30 13:09
对象
31天重构
指南之十五:移除重复内容
这是最常用的重构之一,我们经常要用到它,因为我们的代码中经常因为这或那的原因产生重复代码,让我们来看下面的例子: 1: public class MedicalRecord 2: { 3: public DateTime DateArchived { get; private set; } 4: public bool Archived { get;
·
2015-10-30 13:09
重构
31天重构
指南之十二:分解依赖
如果你要在你的代码中加入单元测试但有一部分代码是你不想测试的,那么你应用使用今天的重构。在下面的例子中我们应用静态类来完成某些工作,但问题是在单元测试时我们无法mock静态类,所以我们只能引入静态类的装饰接口(wrapper interface)来分解对静态类的依赖。 1: public class AnimalFeedingService 2: { 3: priv
·
2015-10-30 13:08
重构
31天重构
指南之十一:使用策略类
今天要说的重构没有固定的来源, 在过去的几年里我使用了该重构的几个变体,我相信这个重构肯定还有其它的变体。 这个重构一般适用的情形是当我们有许多的switch分支语句,并且经常由于有新的条件加入引起分支语句发生变化。在这种情形下我们经常引入策略模式并将每个分支条件语句定义成单独的策略类。这里我要展示的“使用策略类重构”是将上述情形重构成字典模式(策略模式的实现方式之一),这样做的好处是当您以后
·
2015-10-30 13:08
重构
31天重构
指南之九:提取接口
现在让我们来看一个经常被忽略的重构,提取接口。但我们注意到超过一个的类要使用某一个类中方法的子集时,我们应该切断它们之间的依赖,让消费者(consumers)使用接口,这非常容易实现但却降低了代码的耦合性。 1: public class ClassRegistration 2: { 3: public void Create() 4: {
·
2015-10-30 13:08
接口
31天重构
指南之十:提取方法
现在让我们来看提取方法这个重构,这是一个简单却又好处多多的重构,首先,它通过提供有意义的方法名会使代码更具可读性;其次见名知义的方法名减少了维护人员的工作量;最后它更好的可读性减少了对代码的臆断,从而降低了代码的错误率。让我们来看下面的待重构代码: 1: public class Receipt 2: { 3: priva
·
2015-10-30 13:08
重构
31天重构
指南之六:降低字段
与提升方法相似,提升字段也有一个相反的重构叫“降低字段”,降低字段是一个简单到不需要我们多说的重构,来看下面的代码: 1: public abstract class Task 2: { 3: protected string _resolution; 4: } 5: 6: public cla
·
2015-10-30 13:07
重构
31天重构
指南之八:用委派代替继承
有时继承老是被滥用,继承应该仅仅使用在逻辑环境(logical circumstances)中,但却经常因为编程的方便性被滥用,我见过许多因为滥用继承导致的复杂性增加,来看下面的代码: 1: public class Sanitation 2: { 3: public string WashHands() 4: { 5: re
·
2015-10-30 13:07
继承
31天重构
指南之七:重命名
这是我使用最多并觉得最有作的重构。有时我们给方法、类或是参数命名时并不能做到见名知义,这样容易引起对代码的误解中,当这种情况发生时,我们可以利用重命名重构来消除这种误解。 1: public class Person 2: { 3: public string FN { get; set; } 4:
·
2015-10-30 13:07
重构
31天重构
指南之三: 提升方法(pull up )
提升方法的重构是指将方法提升到继承链的较高层次,该重构一般发生了当一个方法需要被更多的继承链中的多个实现使用时。 1: public abstract class Vehicle 2: { 3: // other methods 4: } 5: 6: public class Car : Vehicle 7: {
·
2015-10-30 13:06
pull
31天重构
指南之四:降低方法(pull down)
昨天我们讨论了利用“提升方法”重构将多个子类要用到的方法提升到父类中,今天我们来看和“提升方法”相反的重构---降低方法,下面是待重构的代码: 1: public abstract class Animal 2: { 3: public void Bark() 4: { 5: // code to bark 6:
·
2015-10-30 13:06
pull
31天重构
指南之五:提升字段
今天的重构指南和“提升方法”有点类似,不过要提升的不是方法,而是字段,让我们来看下面的代码: 1: public abstract class Account 2: { 3: } 4: 5: public class CheckingAccount : Account 6: { 7: private decimal _m
·
2015-10-30 13:06
重构
31天重构
指南之一:封装集合
在有些情况下不将类中的集合对象暴露给用户是合理的,特别是当您为集合提供了另外的添加和删除方法时。基于这个原因,只暴露一个仅仅能遍历但不能修改的集合是明智的,下面让我们来看一段代码: 1: public class Order 2: { 3: private List<OrderLine> _orderLines; 4: 5:
·
2015-10-30 13:05
集合
31天重构
指南之二:移动方法
今天的重构指南是关于移动方法的,移动方法是一个简单却容易被忽略的重构,正如它的名字所表达的意思一样,移动方法就是将方法移动到合适的位置。让我们来看下面的待重构代码: 1: public class BankAccount 2: { 3: public BankAccount(int accountAge, int creditScore, AccountIntere
·
2015-10-30 13:05
重构
31 天重构学习笔记索引
由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅
·
2015-10-30 13:09
学习笔记
31天重构
系列学习总结
1.对于属性的封装,如果返回集合,使用IEnumerable<T>,如果延迟加载,使用IQueryable<T>,原因是这个接口只能遍历取出它的值,而不能对这个集合做出改变,比如 public class Order { private List<string> names; public IList<string>
·
2015-10-30 13:25
总结
31天重构
学习笔记31. 使用多态代替条件判断
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年 10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:14
学习笔记
31天重构
学习笔记29. 去除中间人对象
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年 10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:12
学习笔记
31天重构
学习笔记28. 为布尔方法命名
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年 10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:12
学习笔记
31天重构
学习笔记27. 去除上帝类
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年 10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:12
学习笔记
31天重构
学习笔记30. 尽快返回
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年 10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:12
学习笔记
31天重构
学习笔记24. 分解复杂判断
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:11
学习笔记
31天重构
学习笔记26. 避免双重否定
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:11
学习笔记
31天重构
学习笔记25. 引入契约式设计
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:11
学习笔记
31天重构
学习笔记23. 引入参数对象
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:10
学习笔记
31天重构
学习笔记22. 分解方法
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:08
学习笔记
31天重构
学习笔记21. 合并继承
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:07
学习笔记
31天重构
学习笔记20. 提取子类
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:07
学习笔记
31天重构
学习笔记19. 提取工厂类
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:06
学习笔记
31天重构
学习笔记15. 移除重复内容
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:04
学习笔记
31天重构
学习笔记18. 使用条件判断代替异常
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:04
学习笔记
31天重构
学习笔记16. 封装条件
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:04
学习笔记
31天重构
学习笔记17. 提取父类
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:04
学习笔记
31天重构
学习笔记14. 分离职责
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:03
学习笔记
31天重构
学习笔记13. 提取方法对象
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:03
学习笔记
31天重构
学习笔记11. 使用策略类
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:02
学习笔记
31天重构
学习笔记10. 提取方法
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:02
学习笔记
31天重构
学习笔记12. 分解依赖
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:02
学习笔记
31天重构
学习笔记6. 降低字段
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:01
学习笔记
31天重构
学习笔记9. 提取接口
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:01
学习笔记
31天重构
学习笔记7. 重命名(方法,类,参数)
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:01
学习笔记
31天重构
学习笔记8. 使用委派代替继承
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:01
学习笔记
31天重构
学习笔记5. 提升字段
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:00
学习笔记
31天重构
学习笔记3. 提升方法
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:00
学习笔记
31天重构
学习笔记4. 降低方法
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:00
学习笔记
31天重构
学习笔记2. 移动方法
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:00
学习笔记
31天重构
学习笔记1. 封装集合
摘要:由于最近在做重构的项目,所以对重构又重新进行了一遍学习和整理,对
31天重构
最早接触是在2009年10月份,由于当时没有订阅Sean Chambers的blog,所以是在国外的社区上闲逛的时候链接过去的
·
2015-10-23 08:59
学习笔记
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他