甜心奶酪的专栏

待到秋来九月八,我花开后百花杀; 冲天香阵透长安,满城尽带黄金甲。

Inline Temp( 将临时变量内联化 )

Inline Temp( 将临时变量内联化 )double basePrice = anOrder.basePrice();return ( basePrice > 1000 )==>return ( anOrder.basePrice() > 1000 )一、动机Inline ...

2007-08-10 09:18:00

阅读数:568

评论数:1

Inline Method(将函数内联化)

int getRation(){ return ( moreThanFiveLateDeliveries() ) ? 2 : 1;}boolean moreThanFiveLateDeliveries(){ return _numberOfLateDeliveries > 5;}==>...

2007-08-09 09:58:00

阅读数:740

评论数:2

Extract Method( 提炼函数 )

Extract Method( 提炼函数 ) void printOwing(double amount){ printBanner(); //print details System.out.println( "name:" + _name); System.out.prin...

2007-08-08 16:11:00

阅读数:584

评论数:0

设计模式原则

开-闭原则(OCP):一个软件实体应当对扩展开放,对修改关闭。里氏代换原则(LSP):一个软件实体如果使用的是一个基类的话,那么一定适用于其子类,而且它根本不能察觉出基类对象和子类对象的区别。 依赖倒转原则(DIP):要依赖于抽象,不要依赖于具体。接口隔离原则(ISP):使用多个专门的接口比使用单...

2007-08-03 13:40:00

阅读数:470

评论数:0

设计模式总结

创建型模式:(1) Sigleton模式解决的是实体对象个数的问题。除了Sigleton之外,其他创建型模式解决的都是new所带来的耦合管理。(2) Factory Method,Abstract Factory , Builder都需要一个额外的工厂类来负责实例化“易变对象”,而Prototyp...

2007-08-03 13:18:00

阅读数:310

评论数:0

访问者(Visitor)模式

 类层次结构的变化类层次结构中可能经常由于引入新的操作,从而将类型变得脆弱...1、动机在软件构建过程中,由于需求的改变,某些类层次结构中常常需要增加新的行为(方法),如果直接在基类中做这样的更改,将会给子类带来很繁重的变更负担,甚至破坏原有设计。如何在不更改类层次结构的前提下,在运行时根据需要透...

2007-08-03 09:08:00

阅读数:374

评论数:0

策略(Strategy)模式

对象可能经常需要使用多不同的算发,但是如果变化频繁,会将类型变得脆弱...1、动机在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。如何在运行时根据需要透明地更改对象的算法?将算法与对象本身...

2007-08-02 14:23:00

阅读数:427

评论数:0

状态(State)模式

对象状态影响对象行为对象拥有不同的状态,往往会行使不同的行为...1、动机在软件构建过程中,某些对象的状态如果改变,其行为也会随之而发生变化。比如文档处于只读状态,其支持的行为和读写状态支持的行为就可能完全不同。如何在运行时根据对象的状态来透明地更改对象的行为?而不会为对象操作和状态转化之前引入紧...

2007-08-02 09:46:00

阅读数:313

评论数:0

备忘录(Memento)模式

对象状态的回溯对象状态的变化无端,如何回溯/恢复对象在某个点的状态?1、动机在软件构建过程中,某些对象的状态在转换过程中,可能由于某种需要,要求程序能够回溯到对象之前处于某个点时的状态。如果使用一些公有接口来让其他对象得到对象的状态,便会暴露对象的细节实现。如何实现对象状态的良好保存与恢复?但同时...

2007-08-01 14:31:00

阅读数:422

评论数:0

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