设计模式-模版方法模式
来源:互联网 发布:c语言问号表达式 编辑:程序博客网 时间:2024/06/03 19:11
模版方法是一个非常简单,使用频率比较高的设计模式。
意图:
定义一个操作中算法的骨架,而将将一些方法的实现延迟到子类中,TemplateMethod使得子类可以不改变算法的结构即可重定义算法的特定方法。
参与者:
AbstractClass,抽象类。定义抽象的操作,具体的子类将重新定义各自的实现算法。
ConcreteClass,具体的实现类。
回想一下,在之前的开发中用到过这种模式,简单描述一下场景。
在轻松天气项目中,主程序生成widget,由于widget插件不断的扩充和升级,具体的布局和配置会变化,所以主程序要适应不同版本的widget插件,然而生成插件的方法是不变的,在这里就是AbstractClass,其中模版方法就是buildFourTwoWidget(), buildFourOneWidget()等方法,这个方法里面调用读取插件配置的抽象方法,例如,setBackground(), setImageView()等,不同版本会有相应的实现。
一个简单的源码实现:
package com.zqwei.templatemethod;public abstract class AbstractClass {public void buildFourTwoWidget() {setBackground();setFontColor();}public abstract void setBackground();public abstract void setFontColor();}public class APILevelFiveClass extends AbstractClass {@Overridepublic void setBackground() {System.out.println("api level five set background.");}@Overridepublic void setFontColor() {System.out.println("api level five set font color.");}}public class APILevelFourClass extends AbstractClass {@Overridepublic void setBackground() {System.out.println("api level four set background.");}@Overridepublic void setFontColor() {System.out.println("api level four set font color");}}
0 0
- 模版方法-设计模式
- 设计模式-模版方法模式
- 模版方法设计模式
- 模版方法设计模式
- 模版方法设计模式
- 模版方法设计模式
- 模版方法设计模式
- 设计模式-模版方法
- 设计模式--模版方法模式
- 设计模式 - 模版方法模式
- 设计模式---模版方法模式
- 【设计模式】模版方法模式
- 设计模式 模版方法模式
- 设计模式--模版方法模式
- 设计模式---- 模版方法模式
- 设计模式-模版方法模式
- 设计模式 - 模版方法模式
- 设计模式-模版方法模式
- linux group
- centos 6.5 卸载OpenJDK, 安装JDK
- PHP操作SQL Server 2008/2012
- [leetcode 93] Restore IP Addresses
- 【HDU 3949】XOR
- 设计模式-模版方法模式
- android共享数据之SharedPreferences-组建间的数据共享和应用间的数据共享
- Core Animation之CATransform3D学习篇
- 操作系统IO模型
- 正则表达式 - 匹配规则
- Exception in thread "main" java.sql.SQLException: Connections could not be acquired from the underly
- 一句话脚本系列之获取eth0网卡的IP地址(或MAC地址)
- HDU5139 Card 求期望
- opencv从两路视频中获取图片