自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

tanhaiyuan

博客园博客 http://www.cnblogs.com/controlfate/

  • 博客(20)
  • 收藏
  • 关注

原创 6.7 Remove Assigments to Parameters(移除对参数的赋值)

概括代码对一个参数进行赋值。以一个临时变量取代该参数的位置。      例子int discount(int inputVal, int quantity, int yearTodate){    if(inputVal > 50)        inputVal = -2;}重构后int discount(int i

2013-11-28 17:28:11 1232

原创 6.6 Split Temporary Variable(分解临时变量)

概括         某个临时变量被赋值超过一次,且它既不是循环变量,也不是被用于收集计算结果。         针对每次赋值,创造一个独立,对应的临时变量。      例子double temp = 2 * (_height + _width);System.out.println(temp);temp = _height * _width;System.

2013-11-28 17:27:16 1149

原创 6.5 Introduce Explaining Variable(引入解释性变量)

概括        你有一个复杂的表达式。         将该复杂表达式(或其中一部分)的结果放进一个临时变量,以此变量名来解释表达式用途。      例子if((platform.toUperCase().indexOf("MAC") > -1) &&    (browser.toUperCase().indexOf("IE") > -1) &&    wa

2013-11-27 14:10:14 1264

原创 6.4 Replace Temp with Query(以查询取代临时变量)

概括以一个临时变量保存某一个表达式的运算结果。将这个表达式提炼到一个独立函数汇总。将这个临时变量的所有引用点替换为对新函数的调用。此后,新函数就可被其它函数使用。      例子double basePrice = _quantity * _itemPrice;if(basePrice > 1000)     return basePrice*0.95;

2013-11-27 13:44:38 1051

原创 6.3 Inline Temp(内联临时变量)

概括一个临时变量,只被一个简单表达式赋值一次,而它妨碍了其他重构方法。将所有对该变量的引用替换为对它赋值的那个表达式本身。    例子double basePrice = anOrder.basePrice();return (basePrice > 1000)重构之后return (anOrder.basePrice() > 1000)

2013-11-27 13:22:25 1545

原创 6.2 Inline Method(内联函数)

概括一个函数的内部代码与名称同样清晰易懂。在函数调用点插入函数本体,然后移除该函数。   例子int getRating(){    return (moreThanFiveLateDeliveries()) ? 2 : 1;}boolean moreThanFiveLateDeliveries(){    return _numberOfLateD

2013-11-27 13:20:41 1079

原创 6.1 Extract Method(提炼函数)

概括有一段代码可以被组织在一起并独立出来。将这段代码放进一个独立函数中,并让函数名称解释该函数的用途。   例子void printOwing(double amount){    printBanner();    //print details    System.out.println("name:" + _name);    System.out.p

2013-11-27 13:18:20 999

原创 策略模式 状态模式 比较

策略模式类图状态模式类图                  类图是一样的。但是这两个模式的差别在于它们的意图。        状态模式中,我们将一些行为封装在状态对象中,context的行为随时可以委托到那些状态对象中的一个。context的内部状态在状态对象集合范围内变化,context的行为也会随着内部状态变化而变化。但是context的客户端对于状态对象的了解

2013-11-26 13:26:31 1398

原创 模板方法模式(Template method)

意图定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。应用场景uu类图参与者AbstractClass定义抽象的原语(PrimitiveOperation),具体的子类将重定义它们以实现一个算法的各步骤实现一个模板方法,定义一个算法骨

2013-11-25 11:21:39 904

原创 外观模式(Facade)

意图为子系统中的一组接口提供一个一致的界面。定义了一个高层接口,这个接口使得这一子系统更加容易使用应用场景实现平台无关性。跨平台跨库的函数调用。同一个接口去读取不同的资源。硬件自动识别处理系统。类图参与者Facade知道哪些子系统类负责处理请求将客户的请求代理给适当的子系统对象Subsystem

2013-11-21 17:22:05 1143

原创 组合模式(Composite)

意图将对象组合成树形结构以表示"部分-整体"的层次结构。使得用户对单个对象和组合对象的使用更具有一致性。类图 参与者Component为组合中的对象声明接口在适当的情况下,实现所有类共有接口的缺省行为。声明一个接口用于访问和管理Component的子组件(可选)在递归结构中定义一个接口,用于访问一个父部

2013-11-21 17:19:45 919

原创 装饰模式(Decorator)

意图动态的给一个对象添加一些额外的职责。Decorator模式添加功能比生成子类更为灵活。类图参与者Component定义一个对象接口,可以给这些对象动态地添加职责ConcreteComponent定义一个对象,可以个这个对象添加一些职责Decorator维持一个指向Component对象的指针,并定义一个与Compo

2013-11-21 17:17:31 1022

原创 代理模式(Proxy)

意图 为其他对象提供一种代理以控制对这个对象的访问。类图参与者Proxy:Subject:定义RealSubject和Proxy的共用接口。RealSubject:定义Proxy所代表的实体作用:代理根据其种类,在适当的时候向RealSubject转发请求代码#include iostream>using name

2013-11-21 17:14:30 869

原创 桥接模式(Bridge)

意图将抽象部分与它的实现部分分离,使它们都可以独立的变化应用场景类图参与者Abstraction定义抽象的接口。维护一个指向Implementor类型对象的指针。RedefineAbstraction扩充由Abstraction定义的接口Implementor定义实现类的接口,该接口可以与Abstracti

2013-11-21 17:11:33 1071

原创 适配器模式(Adapter)

意图将一个类的接口转换成客户希望的另一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作类图对象适配器类适配器参与者Target: 定义Client使用的特定领域的接口Client :与符合Target接口的对象协作Adaptee:定义一个已存在的需要适配的接口

2013-11-21 17:09:33 987

原创 知识管理系统

一 :概述         知识管理中, 一般是设定学习目标, 有针对性的收集材料,然后学习更有效;另外如见到以前总结过的内容, 并对自己有启发的也可以保存, 以修改以前写过的文章;         而学习目标是什么?其实大多数目标都为时间管理GTD中的一个项目, 或一个任务;比如学习html;而有些虽然直接目标并不是为了学习, 比如用qt写出来一个软件, 但是在写软件前肯定要学习

2013-11-21 17:07:24 1088

原创 设计模式学习阶段

照着书上的例子,将此模式记住。一字一字的读模式意图,同时想模式的实现, 更深的领悟发现不同模式的相同点发现不同模式相同点的不同点

2013-11-21 16:55:34 842

原创 单例模式(Singleton)

http://www.cnblogs.com/wangjq/archive/2012/06/28/2561250.html  设计模式学习笔记-单例模式http://www.cnblogs.com/ykt/archive/2011/11/24/2261251.html  [读书笔记] 单例模式的几种实现方式《漫谈设计模式》一: 概述保证一个类仅有一个实例

2013-11-21 16:52:08 801

原创 建造者模式

一: 概述 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。通俗点说: 二  演化过程方法1: 要保证一个类仅由一个实例,可以在调用处判断类对象是否为空, 如果空就创建对象,否则就不创建。 三: 模式解读1 类图 2 要点参与者:Builder  为创建一个

2013-11-21 16:43:42 773

原创 状态模式

意图允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。应用场景uu类图参与者Context定义客户感兴趣的接口维护一个ConcreteState子类的实例,这个实例定义当前状态State(状态)定义一个接口以封装与Context的一个特定状态相关的行为ConcreteS

2013-11-21 16:41:30 741

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除