设计模式之间的对比
第一、设计模式之间的关联关系和对比 1.1单例模式和工厂模式 实际业务代码中,通常会把工厂类设计为单例。 1.2策略模式和工厂模式 1.工厂模式包含工厂方法模式和抽象工厂模式是创建型模式,策略模式属于行为型模式。 2.工厂模式主要目的是封装好创建逻辑,策略模式接收工厂创建好的对象,从而实现不同的行为。 1.3策略模式和委派模式 1、策略模式是委派模式内部的一种实现形式,策略模式关注的结果是否能相互替代。 2、委派模式更关注分发和调度的过程。 模板方法模式和工厂方法模式工厂方法是模板方法的一种特殊实现。 工厂方法模式 模板方法模式 对于工厂方法模式的 create()方法而言,相当于只有一个步骤的模板方法模式。这一个步骤交给子类去实现。而模板方法呢, 将 needHomework()方法和 checkHomework()方法交给子类实现,needHomework()方法和 checkHomework()方法又属于父类的某一个步骤且不可变更。 1.4模板方法和策略模式 1、模板方法和策略模式都有封装算法。 2、策略模式是使不同算法可以相互替换,且不影响客户端应用层的使用。 3、模板方法是针对定义一个算法的流程,将一些有细微差异的部分交给子类实现。 4、模板方法模式不能改变算法流程,策略模式可以改变算法流程且可替换。策略模式通常用来代替 if...else...等条件分支语句。 策略模式