设计模式-模板方法的使用
2017-05-23 18:12
323 查看
概述
模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。
比如定义一个操作中的算法的骨架,将步骤延迟到子类中。模板方法使得子类能够不去改变一个算法的结构即可重定义算法的某些特定步骤。
模式中的角色
抽象类(AbstractClass):实现了模板方法,定义了算法的骨架。
具体类(ConcreteClass):实现抽象类中的抽象方法,已完成完整的算法。
就比如,我每天吃饭,但是我每天吃的不同,
那么模板就该是吃饭,具体吃什么是具体类的实现。
public abstract class
AbstractEat(
public abstract void food(){};
public void eatFood() {
//其他逻辑
food(){};
}
);
public class today extend AbstractEat(){
@Override
public void food(){
//今天具体吃什么
}
}
模板方法模式是类的行为模式。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是模板方法模式的用意。
比如定义一个操作中的算法的骨架,将步骤延迟到子类中。模板方法使得子类能够不去改变一个算法的结构即可重定义算法的某些特定步骤。
模式中的角色
抽象类(AbstractClass):实现了模板方法,定义了算法的骨架。
具体类(ConcreteClass):实现抽象类中的抽象方法,已完成完整的算法。
就比如,我每天吃饭,但是我每天吃的不同,
那么模板就该是吃饭,具体吃什么是具体类的实现。
public abstract class
AbstractEat(
public abstract void food(){};
public void eatFood() {
//其他逻辑
food(){};
}
);
public class today extend AbstractEat(){
@Override
public void food(){
//今天具体吃什么
}
}
相关文章推荐
- 使用模板方法模式实现可扩展性设计(Java示例)
- 30. 代码实例-设计模式-回调方式使用模板方法
- 黑马程序员 JDBC_使用模板方法设计模式处理DAO中的方法(李勇老师)
- iOS App使用设计模式中的模板方法模式开发的示例
- 使用模板方法设计模式处理DAO中的查询方法
- 设计模式——行为型之使用模板方法(Template Method Pattern)模式尽量减少重复相似的代码段(一)
- java设计模式之模板模式以及钩子方法使用
- 设计模式之---模板方法template method的使用
- JDBC学习笔记(21):使用模板方法设计模式
- linux 设计模式(模板方法)的使用
- 详解C#设计模式编程中的模板方法模式使用
- Groovy探索之闭包 七 使用闭包来实现模板方法模式
- 深入浅出Java模式设计之模板方法模式
- 第六个设计模式之:模板方法
- 设计模式(1)- 模板方法 Template Method Pattern
- 设计模式 - Template Method Pattern(模板方法模式)
- 白话设计模式--行为型模式--Template Method模式(模板方法模式)
- 设计模式学习之 模板方法模式
- 设计模式--模板方法模式(照旧,有类关系图)
- 设计模式学习笔记(十六)——Template Method模板方法模式