博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式学习(六):重构与模式,推荐书籍(完)
阅读量:6503 次
发布时间:2019-06-24

本文共 1336 字,大约阅读时间需要 4 分钟。

备注:

1.        模式常常组合使用,共同解决问题。

2.        模式是特定场景下优雅的解决方案,因此场景很关键。在软件设计中,特定的场景可能是显而易见的,可能是隐而不现的,有时甚至是设计者有意创造的。因此使用模式时,对问题的分析至关重要。

3.        模式的使用是有先后之分的。

4.        DP书中所给的结构图仅仅是模式可能的实现方式之一,但不是唯一。实现一个模式往往有多种途径。

5.        模式本身是比较复杂的。纯粹的为了模式而模式,并不会改善设计,相反会引入不必要的复杂性。之所以使用模式,是因为它提供了一种优雅的解决方案

6.        有些模式,比如行为型的模式等,常常在设计初期就引入,但是更多的模式则不宜过早的引入。“Refactoring to Patterns”是目前普遍公认的最好的使用设计模式的方法。

7.        模式和语言无关

8.        使用模式不难,用好模式难.唯一的建议: 多编程。

重构与模式

  很多模式并非作为主模式被引入系统设计的,往往是在系统不断进化的过程中,根据需求而引入。模式的引入过程就是系统的一个组合重构过程。进化的系统需要持续重构,因此重构就成了使用模式的一个很好的途径。

  重构的目标:消除重复代码;消除冗余代码;简化代码逻辑。本质上,重构就是为了提高代码的可读性和可维护性等。

  重构往往需要测试驱动开发的支持。没有测试代码重构很难进行,测试代码是保证重构不破坏代码原有行为的必要条件。

  重构过程不宜采取过大的步骤。采取尽可能小的重构步骤,在不破坏代码行为的前提下,尽量使重构的代码在可编译状态下进行代码的增删和替换。小步骤的重构往往就是最快的重构方式。

  模式导向的重构是把重构和模式使用结合在一起的一个途径。

参考书籍

设计模式                    1995

设计模式精解(2nd)   2006

敏捷软件开发              2003

Refactoringto Patterns(中文: 重构与模式)  2006

HeadFirst Design Patterns     ElisabethFreeman, Eric Freeman 2007

推荐书籍:

测试驱动开发(TDD)     Kent Beck

重构                  Martin Fowler

Patternsof EnterpriseApplication Architecture   Martin Fowler

Extreme Programming Explained             Kent Beck

Object-orientedSoftware Construction         Bertrand Meyer

UMLDistilled(有中文版)                   Martin Fowler

大部分写于:2007-02-05~06

完成于2007-03-30

修改于:2009-09-05

---------------------------------------------------

兄弟的公司:

兄弟的公司:

欢迎转载,请注明作者和出处

本文转自 zhenjing 博客园博客,原文链接:http://www.cnblogs.com/zhenjing/archive/2010/12/15/refactoring_2_patterns.html
   ,如需转载请自行联系原作者
你可能感兴趣的文章
Java基础学习总结(1)——equals方法
查看>>
Maven学习总结(6)——Maven与Eclipse整合
查看>>
HTML5:理解head
查看>>
oracle
查看>>
java SpringUtil获取bean
查看>>
Centos6.4最小化安装系统初始化脚本
查看>>
PaaS变厚了
查看>>
赛门铁克开启“容灾即服务”时代
查看>>
复杂度归纳--小结
查看>>
PHP学习笔记 第八讲 Mysql.简介和创建新的数据库
查看>>
【git】git入门之把自己的项目上传到github
查看>>
js获取鼠标位置
查看>>
2016.8.11 DataTable合并及排除重复方法
查看>>
php 魔术方法 说明
查看>>
Mysql
查看>>
POJ-1860-Currency Exchange
查看>>
跨越企业的“中等收入陷阱”
查看>>
Android 开发者必知的开发资源
查看>>
软件工程技术基础-(软件复用技术)
查看>>
给django视图类添加装饰器
查看>>