软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Refactoring To Patterns——目录

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

Refactoring To Patterns

version 0.15

 

Joshua Kerievsky

[email protected]

Industrial Logic, Inc.

http://industriallogic.com

 

Table of Contents

Introduction ................... 6

Chain Constructors............................................................................................................ 12

Motivation ............ 13

Mechanics............ 13

Example ................ 13

Chaining To An Init Method ......................................................................................................... 14

Replace Multiple Constructors with Creation Methods....... 15

Motivation ............ 15

Mechanics............ 16

Example ................ 17

Parameterized Creation Methods .............................................................................................. 19

Encapsulate Classes with Creation Methods..................................... 21

Motivation ............ 22

Forces.................... 23

Mechanics............ 23

Example ................ 23

Encapsulating Inner Classes....................................................................................................... 25

Extract Creation Class................................................................................................... 27

Motivation ............ 27

Mechanics............ 28

Example ................ 28

Move Object Composition to Creation Method............................... 31

Motivation ............ 31

Prerequisites....... 31

Mechanics............ 31

Example ................ 31

Replace Multiple Instances with Singleton.......................................... 32

Replace Singleton with Object Reference.............................................. 33

Motivation ............ 33

Replace Singleton with Registry ........................................................................34

Introduce Polymorphic Creation with Factory Method......36

Motivation ............ 37

Forces.................... 37

Mechanics............ 37

Example ................ 38

Duplication Across Subclasses ................................................................................................. 40

Defer Slow Creation with Virtual Proxy................................................. 42

Motivation ............ 43

Mechanics............ 43

Example ................ 43

Replace Conditional Calculations with Strategy ..........................44

Motivation ............ 45

Mechanics............ 45

Example ................ 46

Replace Implicit Tree with Composite........................................................ 53

Motivation ............ 53

Mechanics............ 54

Example ................ 54

Encapsulate Composite with Builder ......................................................... 57

Motivation ............ 57

Mechanics............ 58

Example ................ 58

Extended Example ........................................................................................................................... 60

Extract Special-Case Behavior into Decorators............................ 63

Motivation ............ 64

Mechanics............ 65

Example ................ 65

Collections.synchronizedMap..................................................................................................... 71

Replace Hard-Coded Notifications with Observer...................... 73

Motivation ............ 74

Mechanics............ 75

Example ................ 75

Move Accumulation to Collecting Parameter ................................. 78

Motivation ............ 78

Mechanics............ 79

Example ................ 79

JUnit’s Collecting Parameter....................................................................................................... 82

Replace One/Many Distinctions with Composite......................... 83

Motivation ............ 84

Mechanics............ 84

Example ................ 85

Compose Method................................................................................................................... 86

Motivation ............ 86

Mechanics............ 87

Example 1............. 88

Example 2............. 91

Example 3............. 97

Separate Versions with Adapters ......................................................................99

Motivation .......... 100

Mechanics.......... 100

Example .............. 101

Adapting with Annonymous Inner Classes......................................................................... 106

Adapting Legacy Systems.......................................................................................................... 106

Adapt Interface...................................................................................................................... 107

Motivation .......... 107

Mechanics.......... 108

Example .............. 108

Replace Type with Type-Safe Enum........................................................... 110

Motivation .......... 111

Mechanics.......... 112

Example .............. 112

Replace State-Altering Conditionals with State........................... 118

Motivation .......... 119

Mechanics.......... 120

Example .............. 121

Replace Singleton with Constant.................................................................... 132

Motivation .......... 132

Mechanics.......... 132

Example .............. 132

Replace Retrieval with Listener........................................................................ 133

Motivation .......... 133

Mechanics.......... 133

Example .............. 133

References .................. 134

Appendix A – Naming Conventions .......................................................................................................... 135

Appendix B – Loan Terminology .............................................................................................................. 136

Conclusion ................. 137

Acknowledgements..... 137

 




相关文章

相关软件