在重构的过程中,什么情况下应该使用设计模式?应该用哪种模式?
2010-06-22 00:03
405 查看
代码坏味 | 重构方法 |
重复代码 | 形成Template Method 用Factory Method引入多态创建 链构造函数 用Composite替换一/多之分 提取Composite 通过Adapter统一接口 引入Null Object |
方法过长 | 组合方法 将聚集操作搬移到Collecting Paramter 用Command替换条件调度 将聚集操作搬移到Visitor 用Strategy替换条件逻辑 |
条件逻辑太复杂 | 用Strategy替换条件逻辑 将装饰功能搬移到Decorator 用State替换状态改变语句 引入Null Object |
基本类型迷恋 | 用类替换类型代码 用State替换条件改变语句 用Strategy替换条件逻辑 用Composite替换隐函树 用Interpreter替换隐式语言 将装饰功能搬移到Decorator 用Builder封装Composite |
不恰当的暴露 | 用Factory封装类 |
解决方案蔓延 | 将创建知识搬移到Factory |
相似功能的类 | 通过Apapter统一接口 |
冗赘类 | 内敛Singleton |
类过大 | 用Command替换条件调度语句 用State替换状态改变语句 用Interpreter替换隐式语言 |
分支语句 | 用Command替换条件调度程序 将聚集操作搬移到Visitor |
组合爆炸 | 用Interpreter替换隐式语句 |
怪异解决方案 | 通过Adapter统一接口 |
相关文章推荐
- 什么情况使用什么设计模式(Android源码设计模式解析与实战)
- 将Oracle数据库改为归档模式并启用RMAN备份 如下Linux环境下对Oracle单节点数据库采用文件系统情况的配置归档模式过程。首先查看数据库归档模式和磁盘使用情况,确定归档文件放到什么位置。
- 设计模式:什么是设计模式,描述使用过得设计模式
- Web service到底是什么;在什么情况下你应该使用Web service。
- 什么情况下应该使用Web Service?
- [转]Web service到底是什么?在什么情况下,你应该使用web service
- Android中采用MVP设计模式和RxJava的情况下,使用BroadcastReceiver
- 什么时候应该使用 工厂模式
- 黑马程序员_Java基础_面向对象(Static的使用、对象初始化和调用成员过程、单例设计模式)
- 从Java的角度理解设计模式1:什么是重构
- 什么情况下应该使用对象池(ObjectPool)
- 什么是设计模式?为何使用他们
- 什么是设计模式?为什么要使用设计模式?有什么好处?
- 【转】在什么情况下应该使用adLockOptimistic,什么情况下应该使用adLockPessimistic....
- 在什么情况下应该使用adLockOptimistic,什么情况下应该使用adLockPessimistic....
- 什么时候应该使用SQL Server锁模式
- [转]Web service到底是什么?在什么情况下,你应该使用web service
- 设计模式- 使用抽象工厂实现多数据库切换实现过程
- 设计模式什么的哪有那么神秘 ----第一集 一些吐槽和重构的韵味
- java8实战七:使用Lambda重构面向对象的设计模式