温东霖的博客

欢迎来到东霖的技术天地

设计模式--工厂模式

2014-06-08 posted in [设计模式]

工厂模式: 首先需要说一下工厂模式。工厂模式根据抽象程度的不同分为三种:简单工厂模式(也叫静态工厂模式)、本文所讲述的工厂方法模式、以及抽象工厂模式。工厂模式是编程中经常用到的一种模式。它的主要优点有: 可以使代码结构清晰,有效地封装变化。在编程中,产品类的实例化有时候是比较复杂和多变的,通过工厂模式,将产品的实例化封装起来,使得调用者根本无需关心产品的实例化过程,只需依赖工厂即可得到自己想要的产品。 对调用者屏蔽具体的产品类。如果使用工厂模式,调用者只关心产品的接口就可以了,至于具体的实现,调用者根本无需关心。即使变更了具体的实现,对调用者来说没... Read more

设计模式--装饰者模式

2014-06-05 posted in [设计模式]

装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 装饰者模式类图 事例实现: 题目:星巴兹是以扩展宿舍最快而文明的咖啡连锁店,因为扩张速度实在太快,他们准备更新订单系统,以合乎他们的饮料供应要求。他们又很多类型的咖啡,在购买咖啡时 也可以要求在其中加入各种调料,例如:蒸奶、豆浆、摩卡或者覆盖泡沫。星巴兹会根据加入的调料收取不同的费用。所以订单 系统必须考虑到这些调料的部分。 以装饰者模式构造饮料订单 1.先从Beverage类下手,这不需要改变星巴兹原始的设计。如下所示: public abstract class B... Read more

设计模式--观察者模式

2014-06-04 posted in [设计模式]

1.观察者模式基本介绍 观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 观察者模式类图: 事例实现: 题目:气象监测站:有一个公司想建立一个应用,有三种布告板,分别显示目前状况、气象统计及简单的预报。当WeatherObject对象获得最新的测量数据时,三种布告板必须实施更新。 1.建立接口 public interface Subject{ public void registerObserver(Observer o); public void removeObserver(Observe... Read more

设计模式--策略模式

2014-06-03 posted in [设计模式]

策略模式:它定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的用户。 策略模式类图 Strategy类定义所有支持算法的公用接口 //抽象算法类或者是接口 abstract class Strategy { //算法方法 public abstract void AlgorithmInterface(); } ConcreteStrategy,封装了具体的算法或行为,继承于Strategy //具体算法A class ConcreteStrategyA : Strategy { //算法A的实现方法 publi... Read more