模板方法模式---我的地盘听我的
2017-01-01 20:16
295 查看
声明:文章内容根据大牛博客的内容,自己理解后,给自己做的学习笔记,文末会附上大牛博客地址链接。有需要沟通交流的可加我QQ群:425120333 模板方法模式是中在框架搭建过程中经常使用的一种设计模式,他声明了需要子类自己去实现的抽象方法,并且已经定义好了具体的调用逻辑, 对于子类来说,只要根据自己的需求实现抽象方法中的功能即可。
public class ShipClient { public static void main(String[] args) { //生成木船 ShipBuilding woodenShip = new WoodenShip(); woodenShip.assembly(); System.out.println("-------------分隔符-------------"); //生成铁船 ShipBuilding ironShip = new IronShip(); ironShip.assembly(); } } abstract class ShipBuilding { //获取材料 abstract void getMaterial(); //建造船身 abstract void makeHull(); //安装动力系统 abstract void havePower(); //组装 public void assembly() { getMaterial(); makeHull(); havePower(); } } class WoodenShip extends ShipBuilding { @Override void getMaterial() { System.out.println("木船---获取到足够的木材"); } @Override void makeHull() { System.out.println("木船---建造单层的船身"); } @Override void havePower() { System.out.println("木船---制造划桨"); } } class IronShip extends ShipBuilding { @Override void getMaterial() { System.out.println("铁船---获取到足够的铁板"); } @Override void makeHull() { System.out.println("铁船---建造双层的船身"); } @Override void havePower() { System.out.println("铁船---安装发动机"); } }
控制台输出:
木船—获取到足够的木材
木船—建造单层的船身
木船—制造划桨
————-分隔符————-
铁船—获取到足够的铁板
铁船—建造双层的船身
铁船—安装发动机
这个例子简单演示了模板方法模式的使用,在抽象类中有个组装的过程,这是不变的,所以不用子类是实现,已经定义好了。子类各自实现抽象方法, 最终都通过调用这个模板方法实现整个过程的串联。 参考大牛链接:http://www.cnblogs.com/zuoxiaolong/p/pattern10.html
相关文章推荐
- 20161114---手写图片转为lmdb
- 包图
- 电脑长鸣的原因分析和解决方案
- 20161114——LeNet-5预测数据-第一次跑
- WICED 开发 Redbear Duo
- socket实现UDP数据传输
- tshark----wireshark的命令行工具
- Android 开源之StickyHeaderListView 标题渐变、吸附悬停、筛选分类、动态头部
- C++'s HelloWorld
- Mysql使用技巧
- VMware12安装Windows7(二)-ghost win7
- 数据结构::如何实现哈夫曼树
- 单例设计模式
- VS2010中属性页中,C/C++ -->预处理器定义
- C's HelloWorld
- 最小的N个和
- spring注入static变量
- (二)搭建环境之django1.8
- 在Linux系统下运行微信Web开发者工具
- 浅谈MySQL数据库的备份与恢复