第一章

☛过度设计:是指代码的灵活性和复杂性超出所需。

第二章

☛重构是一种保持行为的转换。

第三章

☛每一个模式都是由三部分组成的规则,他表达的是某一环境,一个问题以及解决问题的方案之间的关系。

☛模式痴迷:对模式过于依赖。

第四章

☛代码坏味道

●代码重复(Duplicated Code)

通常可以通过形成Template Method重构。

●方法过长(Long Method)

●条件逻辑太复杂(Conditional Complexity)

●基本类型迷恋(Primitive Obsession)

●不恰当的暴漏(Indecent Exposure)

用工厂封装类重构可以去除这种坏味道。

●解决方案蔓延(Solution Sprawl)

●异曲同工的类(Alternative Classes with Different Interfaces)

●冗余类(Lazy class)

●类过大(Large Class)

●分支语句(Switch Statement)

●组合爆炸(Combinatorial Explosion)

●怪异解决方案(Oddball Solution)

第六章

☛解决各种设计代码的问题

●用Creation Method 替换构造函数

类中有多个构造函数,很难决定用哪一个。

●  将创建知识版移到Factory

用来实例化的一个类的数据和代码在多个类中到处都是。移到factory。

●用Factory封装类

直接实例化处在同一包结构中,实现同一接口的多个类。把类的构造函数声明为非公共的,并通过Factory来创建他们的实例。

●用Factory Method 引入多态的创建。

一个层次中的类都类似的实现一个方法,只是创建的步骤不同。创建调用Factory Method来处理实例化的方法的唯一超类版本。

第七章

☛简化

●组合方法

你无法迅速的理解一个方法的逻辑。把方法的逻辑转换成几个同一细节层面上的,能够说明意图的步骤。

●用Strategy替换条件逻辑。

方法中条件逻辑控制着应该执行哪个计算的变体,为每一个变体创建一个Strategy并使方法把计算委托到Strategy实例。

●将装饰功能搬移到Decorator

代码向类的核心职责提供装饰的功能。将装饰代码搬移到Decorator。

●用state替换状态改变条件语句

控制一个对象的转换条件的表达式过于复杂。

用处理特殊状态和转换的State类来替换条件语句。

☛☛☛☛☛☛☛☛☛

重构与模式(Refactoring to Patterns)-读书笔记的更多相关文章

  1. 重构(Refactoring)技巧读书笔记(General Refactoring Tips)

    重构(Refactoring)技巧读书笔记 之一 General Refactoring Tips, Part 1 本文简要整理重构方法的读书笔记及个人在做Code Review过程中,对程序代码常用 ...

  2. 《Small Memory Software:Patterns For System With Limited Memory》读书笔记

    原文地址:http://blog.csdn.net/jinzhuojun/article/details/13297447 虽然摩尔定律让我们的计算机硬件得以以指数速度升级,但反摩尔定律又不断消减这些 ...

  3. 《企业应用架构模式》(POEAA)读书笔记

    原文地址:<企业应用架构模式>(POEAA)读书笔记作者:邹齐龙(技术-5013 什么是架构 Rolph Johnson认为:架构是一种主观上的东西,是专家级的项目开发人员对系统设计的一些 ...

  4. ITEYE中的读书笔记:重构其实就是持续改进

    原文地址:http://hawkon.iteye.com/blog/2093338#bc2355877 前段时间同事参加ITEYE的试读有奖, 没想到得了个奖,拿到一本书.由于同事的推荐我也认真读了一 ...

  5. 《Head First 设计模式》读书笔记(1) - 策略模式

    <Head First 设计模式>(点击查看详情) 1.写在前面的话 之前在列书单的时候,看网友对于设计模式的推荐里说,设计模式的书类别都大同小异,于是自己就选择了Head First系列 ...

  6. 《CLR via C#》读书笔记(一)——CLR的执行模式

    前言 万事开头难,很早之前就想写博客记录些东西,迟迟未行动,甚是遗憾.原因诸多,大体上无非都是懒.没意志力等等.这次从自己的读书笔记开始,兴许能够有所改变. 一.CLR概念 CLR(Common La ...

  7. Head First 设计模式读书笔记(1)-策略模式

    一.策略模式的定义 策略模式定义了算法族,分别封装起来,让它们之间可以互换替换,此模式让算法的变化独立使用算法的客户. 二.使用策略模式的一个例子 2.1引出问题 某公司做了一套模拟鸭子的游戏:该游戏 ...

  8. 读书笔记《PHP高级程序设计、模式、框架与测试》

    序言 闲来无事,下载了一些电子书,然后看书名不错<PHP高级程序设计_模式.框架与测试>,翻了一下虽然书有点老了但是讲的内容经常会碰到!给大家推荐一下,然后这里放上我的读书笔记,每日更新. ...

  9. 存储器的保护(三)——《x86汇编语言:从实模式到保护模式》读书笔记20

    存储器的保护(三) 修改本章代码清单,使之可以检测1MB以上的内存空间(从地址0x0010_0000开始,不考虑高速缓存的影响).要求:对内存的读写按双字的长度进行,并在检测的同时显示已检测的内存数量 ...

随机推荐

  1. [moka同学笔记]WINDOWS中cmd的切换目录cd命令失效

    症状: 解决办法: 二.解决问题 原因是没有切换盘符步骤一:C:\Users\Administrator>D:步骤二:D:\>

  2. 简析 .NET Core 构成体系

    简析 .NET Core 构成体系 Roslyn 编译器 RyuJIT 编译器 CoreCLR & CoreRT CoreFX(.NET Core Libraries) .NET Core 代 ...

  3. webpack CommonsChunkPlugin详细教程

    1.demo结构: 2.package.json配置: { "name": "webpack-simple-demo", "version" ...

  4. Mysql(Mariadb) 基础操作语句 (持续更新)

    基础SQL语句,记录以备查阅.(在HeiDiSql中执行) # 创建数据库 Create Database If Not Exists VerifyIdear Character Set UTF8; ...

  5. JavaScript数组的reduce方法详解

    数组经常用到的方法有push.join.indexOf.slice等等,但是有一个经常被我们忽略的方法:reduce,这个方法简直强大的不要不要的. 我们先来看看这个方法的官方概述:reduce()  ...

  6. asp.net mvc 自定义pager封装与优化

    asp.net mvc 自定义pager封装与优化 Intro 之前做了一个通用的分页组件,但是有些不足,从翻页事件和分页样式都融合在后台代码中,到翻页事件可以自定义,再到翻页和样式都和代码分离, 自 ...

  7. 最大似然判别法和Bayes公式判别法

    最大似然判别法 Bayes公式判别法

  8. SharePoint 2013 Designer系列之数据视图

    在SharePoint使用中,数据展示是一块很重要的部分,很多时候我们会采用webpart的形式,但是有一些情况,我们不必使用开发,仅需使用Designer即可,下面让我简单介绍下数据视图的使用. 1 ...

  9. SharePoint 2013 图文开发系列之InfoPath入门

    本文主要介绍SharePoint 2013中,简单发布InfoPath表单,并添加后台代码,示例比较简单,主要描述的是一个创建InfoPath的过程,而非多么深奥的后台代码,希望能够给初学者带来帮助. ...

  10. Java—byte小结

    1.声明byte[]数组: private static final byte[] XINTIAO = { (byte) 0xEE, (byte) 0x00 }; 2:将多个bute[]数组合并成一个 ...