Design Pattern
文章平均质量分 86
iteye_10809
这个作者很懒,什么都没留下…
展开
-
Command Pattern
所谓命令模式本质上讲就是对请求的封装:那我们在什么时候使用呢?1 如果需要执行的动作需要被抽取出来2 需要在不同的时刻指定请求 其实命令式最主要的作用还是用于类之间的解耦。结构图: 示例代码:package Proxy.command;public class Invoker { //调用哪一个命令 private Command co...原创 2013-10-13 20:17:02 · 94 阅读 · 0 评论 -
策略模式(Strategy Pattern)
什么是策略模式:策略模式就是:定义一组或者系列算法,然后将这些算法封装,可以实现算法的切换。策略模式应用场景: 策略模式一般用于封装系列的计算方法,这些算法通常封装在一个context的类中。在程序里面我们可以自由地选择其中一种算法。最常见的应用场景比如商场商品的促销折扣计算。 用switch我们也可以实现这些功能,只不过代码扩展性不好,如果我们需要加入一个折扣...原创 2013-10-13 20:58:14 · 73 阅读 · 0 评论 -
观察者模式( Obsever Pattern)
观察者模式的应用场景:在有些场景,比如多个类可能需要依赖一个类,比如价格,如果产品价格发生变化,那么依赖他的类也需要拍做出相应的变化或者更新。那么这些依赖产品的类就是观察者,产品就是被观察者抑或主题对象。/** * 这是一个观察者接口,如果要作为一个观察者对象 * 需要实现该接口,这个接口一般定义一些公共的且 * 需要操作主题对象的方法 * @author nickyzhang */p...原创 2013-10-14 22:03:34 · 105 阅读 · 0 评论 -
桥接模式
桥接模式应用场景:比如在商场买手机,你可以买各种品牌的手机,而各种品牌的手机又很多种促销的礼品可供选择,那么就存在多个维度的变化。 public interface Gift { public String selectGift();} /** * 买手机的时候可以选择什么样的赠品 * @author nickyzhang */public a...原创 2013-10-15 20:19:49 · 87 阅读 · 0 评论 -
模板方法模式
模板方法:定义了一个算法的步骤,并允许子类为一个或者多个步骤提供实现 我们以泡茶喝咖啡为例子: public class Coffee{ public void prepareRecipe(){ boilWater(); brewCoffeeGrinds(); pourInCup(); addSugarAndMilk();...原创 2014-01-18 23:25:23 · 69 阅读 · 0 评论 -
设计模式
一:什么是单例模式?单例模式: 确保某一个类是有一个实例,且自行实例化和向全局提供这个实例。二:单例模式的优缺点:优点:1 内存只有一个实例。减少了内存的开支。2 只生成一个实例,减少了系统的性能开销。缺点:单例模式没有接口,一般扩展很困难,除非修改代码。三:单列模式有三种实现方式:饥汉式:public class Singleton(){ private static Singleton ...原创 2014-02-15 13:50:32 · 66 阅读 · 0 评论 -
工厂方法模式
一:什么是工厂方法模式定义一个创建对象的接口,具体实例的产生由这个接口的子类去决定,也就是所谓的一个类的实例化延迟到子类。 二:工厂方法模式的优点(共性) 1 屏蔽了产品类,客户端不用去关注产品类的实现的变化,他只需要关注产品的接口。因为产品的实例化是由工厂类负责的。比如使用JDBC连接数据库,数据库从DB2切换到Oracle,你只需要关注我要使用哪一个数据库,至于后面的东西...原创 2014-02-15 17:14:01 · 77 阅读 · 0 评论 -
代理模式(Proxy)
一:什么是代理模式?代理模式本质上就是控制对象的访问。为其他对象提供一种代理以控制这个对象的访问。什么意思呢?比如,有一个对象载入需要很长的时间,那么你可以不立刻加载它,而是当真正需要的时候才去加载。 二:静态代理(以汽车销售代理为例)结构图: package Proxy.staticProxy;/** * 宝马销售接口 * @author Admi...原创 2014-02-16 21:28:21 · 91 阅读 · 0 评论