`
coolerbaosi
  • 浏览: 727828 次
文章分类
社区版块
存档分类
最新评论

模板方法模式 Template Method Pattern

 
阅读更多
一、什么是模板方法模式
Template Method模式也叫模板方法模式,是行为模式之一,它把具有特定步骤算法中的某些必要的处理委让给抽象方法,通过子类继承对抽象方法的不同实现改变整个算法的行为。

二、模板方法模式的应用场景
Template Method模式一般应用在具有以下条件的应用中:
- 具有统一的操作步骤或操作过程
- 具有不同的操作细节
- 存在多个具有同样操作步骤的应用场景,但某些具体的操作细节却各不相同

二、模板方法模式的结构



三、模板方法模式的角色和职责

AbstractClass:抽象类的父类

ConcreteClass:具体的实现子类

templateMethod():模板方法

method1()与method2():具体步骤方法


MakeCar.java
/* 
 * 组装车 
 */ 
public abstract class MakeCar { 
    //组装车头 
    public abstract void makeHead(); 
 
    //组装车身 
    public abstract void makeBody(); 
 
    //组装车尾 
    public abstract void makeTail(); 
 
    public void make() { 
        this.makeHead(); 
        this.makeBody(); 
        this.makeTail(); 
    } 
}
MakeBus.java
public class MakeBus extends MakeCar { 
	 
    public void makeBody() { 
        System.out.println("bus:组装车身"); 
    } 
 
    public void makeHead() { 
        System.out.println("bus:组装车头"); 
    } 
 
    public void makeTail() { 
        System.out.println("bus:组装车尾"); 
    } 
}
MakeJeep.java
public class MakeJeep extends MakeCar { 
	 
    public void makeBody() { 
        System.out.println("jeep:组装车身"); 
    } 
 
    public void makeHead() { 
        System.out.println("jeep:组装车头"); 
    } 
 
    public void makeTail() { 
        System.out.println("jeep:组装车尾"); 
    } 
 
}
MakeKa.java
public class MakeKa extends MakeCar { 
	 
    public void makeBody() { 
        System.out.println("ka:组装车身"); 
    } 
 
    public void makeHead() { 
        System.out.println("ka:组装车头"); 
    } 
 
    public void makeTail() { 
        System.out.println("ka:组装车尾"); 
    } 
 
}
MainClass.java
public class MainClass { 
    public static void main(String[] args) { 
        MakeCar bus = new MakeBus(); 
//      bus.makeHead(); 
//      bus.makeBody(); 
//      bus.makeTail(); 
        bus.make(); 
 
        System.out.println("-------------------"); 
 
        MakeCar jeep = new MakeJeep(); 
//      jeep.makeHead(); 
//      jeep.makeBody(); 
//      jeep.makeTail(); 
        jeep.make(); 
 
        System.out.println("-------------------"); 
 
        MakeCar ka = new MakeKa(); 
        ka.make(); 
    } 
}



分享到:
评论

相关推荐

    Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现

    Head First 设计模式 (八) 模板方法模式(Template Method pattern) C++实现

    Java24种设计模式,Java24种设计模式,24种设计模式,学会了这24种设计模式,可以打遍天下无敌手,设计模式非常重要

    9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER PATTERN 11、桥梁模式BRIDGE PATTERN 12、命令模式COMMAND PATTERN 13、装饰模式DECORATOR PATTERN 14、迭代器模式ITERATOR PATTERN 15、组合...

    TemplateMethod Pattern.unitypackage

    TemplateMethod Pattern.unitypackage是一个模板方法模式的小栗子。

    C#模板方法模式(Template Method Pattern)实例教程

    主要介绍了C#模板方法模式(Template Method Pattern),以实例形式讲述了C#抽象类模板方法的用法,具有很高的实用价值,需要的朋友可以参考下

    python 模板方法模式(示例)

    设计模式——模板方法模式模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,将一些步骤延迟至子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤使用场景:当不变和可...

    24种设计模式与6大设计原则

    模板方法模式[TEMPLATE METHOD PATTERN] 建造者模式[BUILDER PATTERN] 策略模式 代理模式 单例模式 多例模式 工厂方法模式 抽象工厂模式 门面模式 适配器模式 模板方法模式 建造者模式 桥梁模式 命令模式 装饰模式 ...

    C#版 24种设计模式

    工厂方法模式(Factory Method Pattern) 观察者模式(Observer Pattern) 建造者模式(Builder Pattern) 解释器模式(Interpreter Pattern) 命令模式(Command Pattern) 模板方法模式(Template Method Pattern) 桥接模式...

    Python设计模式之模板方法模式实例详解

    模板方法模式(Template Method Pattern):定义一个操作中的算法骨架,将一些步骤延迟至子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 下面是一个模板方法模式的一个demo: #!/...

    设计模式PPT

    创建型模式用来处理对象的创建过程,主要包含以下5种设计模式:  工厂方法模式(Factory Method Pattern)  抽象工厂模式... 模板方法模式(Template Method Pattern)  访问者模式(Visitor Pattern)

    C#设计模式_设计模式_C#_

    工厂方法模式(Factory Method) 5. 原型模式(Prototype)结构型: 6. 适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合模式(Composite Pattern) 10. 外观模式...

    【原创】Open close principle sample, state pattern, template method pattern

    设计模式中状态模式的例子代码,并包含函数模板模式;设计模式研究学习

    C++设计模式(Design Pattern)范例源代码

    23种设计模式(Design Pattern)的C++实现范例,包括下面列出的各种模式,代码包含较详细注释。另外附上“设计模式迷你手册.chm”供参考。 注:项目在 VS2008 下...模板方法模式(Template Method) 访问者模式(Visitor)

    C#设计模式(23种设计模式)

    工厂方法模式(Factory Method) 5. 原型模式(Prototype) 结构型: 6. 适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合模式(Composite Pattern) 10...

    Java设计模式,并加上个人理解

    8. 模板方法模式 (Template Pattern) 9. 建造者模式 (Builder Pattern) 10. 原型模式 (Prototype Pattern) 11. 组合模式 (Composite Pattern) 12. 装饰者模式 (Decorator Pattern) 13. 访问者模式 ...

    设计模式代码——c#

    4. 工厂方法模式(Factory Method) 5. 原型模式(Prototype) 结构型: 6. 适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合模式(Composite Pattern...

    23种设计模式 (创建型,结构型,行为型)

    工厂方法模式(Factory Method) 5. 原型模式(Prototype) 结构型: 6. 适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合模式(Composite Pattern) 10...

    JAVA设计模式.rar

    模板方法模式【TEMPLATE METHOD PATTERN】  建造者模式【BUILDER PATTERN】 桥梁模式【BRIDGE PATTERN】  命令模式【COMMAND PATTERN】  装饰模式【DECORATOR PATTERN】 迭代器模式【ITERATOR ...

    32种设计模式

    工厂方法模式(Factory Method) 5. 原型模式(Prototype) 结构型: 6. 适配器模式(Adapter Pattern) 7. 桥接模式(Bridge Pattern) 8. 装饰模式(Decorator Pattern) 9. 组合模式...

    Design-patterns:java23种设计模式,深入理解灵活运用设计模式对于优化代码质量,提高编程能力非常必要!

    模板方法模式 Template method pattern 建造者模式 Builder model 适配器模式 Adapter mode 装饰模式 Decorative pattern 观察者模式 Observer mode 组合模式 Portfolio model 策略模式 The strategy pattern 责任链...

Global site tag (gtag.js) - Google Analytics