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

简介:

备注:

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    ,如需转载请自行联系原作者

相关文章
|
7月前
|
设计模式 Java 数据库连接
【设计模式】【创建型模式】工厂方法模式(Factory Methods)
一、入门 什么是工厂方法模式? 工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定实例化哪个类。工厂方法模式使类的实例化延迟
211 16
|
7月前
|
设计模式 负载均衡 监控
并发设计模式实战系列(2):领导者/追随者模式
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发设计模式实战系列,第二章领导者/追随者(Leader/Followers)模式,废话不多说直接开始~
218 0
|
7月前
|
设计模式 监控 Java
并发设计模式实战系列(1):半同步/半异步模式
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发设计模式实战系列,第一章半同步/半异步(Half-Sync/Half-Async)模式,废话不多说直接开始~
202 0
|
7月前
|
设计模式 安全 Java
并发设计模式实战系列(12):不变模式(Immutable Object)
🌟 大家好,我是摘星!🌟今天为大家带来的是并发设计模式实战系列,第十二章,废话不多说直接开始~
175 0
|
7月前
|
设计模式 算法 Java
设计模式觉醒系列(04)策略模式|简单工厂模式的升级版
本文介绍了简单工厂模式与策略模式的概念及其融合实践。简单工厂模式用于对象创建,通过隐藏实现细节简化代码;策略模式关注行为封装与切换,支持动态替换算法,增强灵活性。两者结合形成“策略工厂”,既简化对象创建又保持低耦合。文章通过支付案例演示了模式的应用,并强调实际开发中应根据需求选择合适的设计模式,避免生搬硬套。最后推荐了JVM调优、并发编程等技术专题,助力开发者提升技能。
|
7月前
|
设计模式 Prometheus 监控
并发设计模式实战系列(20):扇出/扇入模式(Fan-Out/Fan-In)(完结篇)
🌟 大家好,我是摘星!🌟今天为大家带来的是并发设计模式实战系列,第二十章,废话不多说直接开始~
240 0
|
11月前
|
设计模式
「全网最细 + 实战源码案例」设计模式——模式扩展(配置工厂)
该设计通过配置文件和反射机制动态选择具体工厂,减少硬编码依赖,提升系统灵活性和扩展性。配置文件解耦、反射创建对象,新增产品族无需修改客户端代码。示例中,`CoffeeFactory`类加载配置文件并使用反射生成咖啡对象,客户端调用时只需指定名称即可获取对应产品实例。
225 40
|
9月前
|
设计模式 Java 关系型数据库
设计模式:工厂方法模式(Factory Method)
工厂方法模式是一种创建型设计模式,通过将对象的创建延迟到子类实现解耦。其核心是抽象工厂声明工厂方法返回抽象产品,具体工厂重写该方法返回具体产品实例。适用于动态扩展产品类型、复杂创建逻辑和框架设计等场景,如日志记录器、数据库连接池等。优点包括符合开闭原则、解耦客户端与具体产品;缺点是可能增加类数量和复杂度。典型应用如Java集合框架、Spring BeanFactory等。
|
11月前
|
设计模式 关系型数据库
「全网最细 + 实战源码案例」设计模式——工厂方法模式
简单工厂模式是一种创建型设计模式,通过一个工厂类根据传入参数创建不同类型的产品对象,也称“静态工厂方法”模式。其结构包括工厂类、产品接口和具体产品类。适用于创建对象种类较少且调用者无需关心创建细节的场景。优点是封装性强、代码复用性好;缺点是扩展性差,增加新产品时需修改工厂类代码,违反开闭原则。
165 15
|
11月前
|
设计模式 Java
「全网最细 + 实战源码案例」设计模式——生成器模式
生成器模式(Builder Pattern)是一种创建型设计模式,用于分步骤构建复杂对象。它允许用户通过控制对象构造的过程,定制对象的组成部分,而无需直接实例化细节。该模式特别适合构建具有多种配置的复杂对象。其结构包括抽象建造者、具体建造者、指挥者和产品角色。适用于需要创建复杂对象且对象由多个部分组成、构造过程需对外隐藏或分离表示与构造的场景。优点在于更好的控制、代码复用和解耦性;缺点是增加复杂性和不适合简单对象。实现时需定义建造者接口、具体建造者类、指挥者类及产品类。链式调用是常见应用方式之一。
171 12

热门文章

最新文章