Edward_jie

for you, my Hall of Frame

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年5月29日

摘要: StrategyPattern和Simple Factory的区别和用法Strategy Pattern主要用于抽象特定算法或行为的设计模式模式,外表类似于简单工厂模式,但简单工厂模式主要用于生成产品,返回new实例,然后进行相应的编程,而策略模式倾向于指定的唯一的算法策略,初始化实例策略类之后,直接调用算法。在简单工厂中我们只需要传递相应的条件就能得到想要的一个对象,然后通过这个对象实现算法的操作,因为简单工厂中我们实现了switch来处理到底实例化哪个对象。而策略模式使用时必须在客户端首先创建一个想使用的类对象,然后将该对象最为参数传递进去,通过该对象调用不同的算法,因为策略模式中并没有为 阅读全文
posted @ 2012-05-29 21:00 Edward_诺 阅读(1979) 评论(2) 推荐(0)

摘要: 一、策略(Strategy)模式策略模式的用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。假设现在要设计一个贩卖各类书籍的电子商务网站的购物车(Shopping Cat)系统。一个最简单的情况就是把所有货品的单价乘上数量,但是实际情况肯定比这要复杂。比如,本网站可能对所有的教材类图书实行每本一元的折扣;对连环画类图书提供每本7%的促销折扣,而对非教材类的计算机图书有3%的折扣;对其余的图书没有折扣。由于有这样复杂的折扣算法,使得价格计算问题需要系统地解决。使用策略模式可以把行为和环境分割开来。环境类 阅读全文
posted @ 2012-05-29 17:54 Edward_诺 阅读(14920) 评论(2) 推荐(3)

摘要: 观察者模式:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。抽象主题(Subject)角色:主题角色把所有对观察考对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象,主题角色又叫做抽象被观察者(Observable)角色,一般用一个抽象类或者一个接口实现。抽象观察者(Observer)角色:为所有的具体观察者定义一个接口,在得到主题的通知时更新自己。这个接口叫做更新接口。抽象观察者角色一般用一个抽象类或者一个接口实现。在这个示意性 阅读全文
posted @ 2012-05-29 16:57 Edward_诺 阅读(1618) 评论(2) 推荐(1)