1. Home
  2. 读书知识

设计模式学习(六):重构与模式,推荐书籍(完)

备注:

设计模式学习(六):重构与模式,推荐书籍(完)

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

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

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

原文链接:https://www.cnblogs.com/zhenjing/archive/2010/12/15/refactoring_2_patterns.html

你可能感兴趣

linux学习书籍推荐linux学习书籍推荐

inux 学习书目推荐 Linux基础 1、《Linux与Unix Shell 编程指南》 C语言基础 1、《C Primer Plus,5th Edition》【美】Stephen Prata著 2、《The  C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)著 3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE) 4、《嵌入式Linux应用程序开发详解》 Linux内核 1、《深入

【书籍推荐】给大家分享和推荐前端相关书籍

【豆瓣书评】:本书是JavaScript 超级畅销书的最新版。ECMAScript 5 和HTML5 在标准之争中双双胜出,使大量专有实现和客户端扩展正式进入规范,同时也为JavaScript 增添了很多适应未来发展的新特性。本书这一版除增加5 章全新内容外,其他章节也有较大幅度的增补和修订,新内容篇幅约占三分之一。全书从JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax 与Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括WebGL)及Web Workers、地理定位、跨文档传递消息、客户端存储(包

大型网站架构系列:20本技术书籍推荐

学习是技术人员成长的基础,本次分享20本技术方面的书籍,这些书不是每一本都是经典,但是每一本都有其特点。以下20本大部分本人都看过,因此推荐给大家。(本次推荐的20本只是一个参考,比如像Head First,Java编程思想等经典书籍是大家都知道,因此不在推荐之列)本次分享大纲一、大型网站架构系列第一本:《大型网站技术架构:核心原理与案例分析》这是本算是国内大型网站架构的经典之作,由阿里人李智慧创作,听名字就知道本书很有智慧。主要从大型网站架构的特点,架构目标(高性能,高可用,可伸缩等)基本理论讲起,并介绍了几个很有特色的案例。之前群内分享的大型网站架构系列的基础理论大部分出自此书。 

C++进阶书籍推荐

C++书籍太丰富了,以下是我精选推荐的。 一、C++入门普及篇: 1.《C++程序设计教程》(钱能-清华版) 讲解较为清析、简单,符合中国学生思路,价格便宜。但深度和广度欠佳,适合初学者。2.《C++程序设计语言》 C++之父所作,被称之为“C++圣经”。不仅对语言,而且对语言周边的一些如发展史、语义哲学都有比较详细的描述。对语言的描述较为全面,同时包含一部分和程序库相关联的知识,并有一定深度,适合有一定语言基础的初学者,翻译质量不错,价格适中。 二、C++提高篇: 1.《C++Primer》(第四版) 有“C++的百科全书”,C++程序员人手必备。对语法、语义的描述非常细

【原创】最值得推荐wince应用和wince驱动入门书籍

最值得推荐wince应用和wince驱动入门书籍 作者:wogoyixikexie@gliet应用方向? C++,c#----------本人不做应用只知道用这两个语言用到,不敢推荐 -------也来补充一下。《PROGRAMMING   MICROSOFT   WINDOWS   CE.NET》第三版英文原著Inside Windows CE - John Murray Programming Embedded Systems for Microsoft Windows Ce - Jeff McLeman Profession

.NET技术书籍推荐

1. 书名:Microsoft .NET框架程序设计(修订版)作者:Jeffrey Richter译者:李建忠出版日期:2003 年11月出版社:清华大学出版社推荐理由:框架设计是一本真正意义上的.NET书籍,之前看过很多,但都是工具类的。如果仅仅把.NET作为开发程序的工具,那些书就足够了。但是.NET绝不仅仅是个工具,它是一种思想、一个平台。要想深入学习,必须对其Framework有所了解。《Microsoft .NET框架程序设计(修订版)》无疑是学习.NET Framework最好的一本。李健忠老师的翻译通俗流畅,并且字里行间流露着他对.NET的深刻理解。不过初学者看这本书开始也许会很

Java从入门到精通技术书籍最全50+本推荐(内附电子书资源无偿共享)建议收藏!

前言:技术书阅读方法论一.速读一遍(最好在1~2天内完成)人的大脑记忆力有限,在一天内快速看完一本书会在大脑里留下深刻印象,对于之后复习以及总结都会有特别好的作用。对于每一章的知识,先阅读标题,弄懂大概讲的是什么主题,再去快速看一遍,不懂也没有关系,但是一定要在不懂的地方做个记号,什么记号无所谓,但是要让自己后面再看的时候有个提醒的作用,看看第二次看有没有懂了些。二.精读一遍(在2周内看完)有了前面速读的感觉,第二次看会有慢慢深刻了思想和意识的作用,具体为什么不要问我,去问30年后的神经大脑专家,现在人类可能还没有总结出为什么大脑对记忆的完全方法论,但是,就像我们专业程序员,打代码都是先实践,

推荐几本软件测试方面的经典书籍(2006-11-25 更新)

  《软件测试》 作者:[美]Paul C.Jorgensen 译者:韩柯 涛 出版社:机械工业出版社 原出版社: CRC 另一本同名的经典测试书籍。如果说上面那本的目的是快速的将你引入测试的殿堂,或者说作为一本“快速职业培训”的话,这本则是更深入的介绍了软件测试的基本知识和方法。其中重点介绍了黑盒测试(功能性测试)、白盒测试(结构性测试)的技术和方法,以及如何开展集成测试和系统测试工作。另外,书中还包含了对于面向对象测试的内容。这本书可以作为夯实测试基础的教材,建议阅读。  《Automated Software Testing--Introduction,

原创文章,作者:xyhun,如若转载,请注明出处:https://www.xyhun.com/7545.html

Contact Us

邮件:294438279@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code