博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java模板设计模式之基于组合实现
阅读量:4970 次
发布时间:2019-06-12

本文共 1646 字,大约阅读时间需要 5 分钟。

   广州疯狂软件学院拥有三大课程体系包括:java课程,android课程,ios课程,更多java知识,android知识,ios知识,疯狂软件官网持续更新中。

  基于组合的方式实现模板设计:

  Java代码

  /**

  * 基于组合实现模板设计模式

  * @author Administrator

  *

  */

  public class CombineTemplate {

  //链接数据库

  public void beginConnection(){

  System.out.println("conn success");

  }

  //关闭数据库的链接

  public void closeConnection(){

  System.out.println("close success");

  }

  /**

  * 调用方法,传入一个钩子函数的接口

  */

  public void execute(CallBack back){

  this.beginConnection();

  back.doInTemplate();

  this.closeConnection();

  }

  /**

  * 将要实现的方法创建在模板中

  * 添加

  */

  public void add(final int id){

  this.execute(new CallBack(){

  public void doInTemplate() {

  System.out.println("add:"+id);

  }});

  }

  /**

  * 删除

  * @param id

  */

  public void delete(final int id){

  execute(new CallBack(){

  public void doInTemplate() {

  System.out.println("delete:"+id);

  }});

  }

  }

  回调(钩子):

  Java代码

  package com.svse.combinetemplate;

  /**

  * 接口

  * @author Administrator

  *

  */

  public interface CallBack {

  public void doInTemplate();

  }

  具体的实现类:

  Java代码

  package com.svse.combinetemplate;

  /**

  * 基于组合实现设计模式,实现具体的功能

  * @author Administrator

  *

  */

  public class ExtendCombineTemplate {

  private CombineTemplate ct = new CombineTemplate();

  public void add(int id){

  ct.add(id);

  }

  public void delete(int id){

  ct.add(id);

  }

  }

  疯狂Java培训专注软件开发培训,提升学员就业能力,重点提升实践动手能力。高薪从IT名企请来项目经理为学员亲自授课,对学员进行实战教学,在没有工作经验的学员,在疯狂java,通过大量全真经典企业级项目进行集中培训,学员通过数月培训都可获得1-2年的工作经验,进而在同类的求职者中脱颖而出。疯狂Java培训让你体会java编程的快乐,项目开发的兴奋,成就感,通过短短几个月的时间,让你在半年的时间内掌握8-10万的代码量,掌握Java核心技术,迅速成为技能型的现代化高端人才,迅速获得高薪就业!

 

转载于:https://www.cnblogs.com/gojava/p/3431561.html

你可能感兴趣的文章
判断一个整数是否为4的倍数?
查看>>
视频测试序列的下载地址【转】
查看>>
2018.06.26 NOIP模拟 号码(数位dp)
查看>>
2019.01.20 bzoj3784: 树上的路径(二分答案+点分治)
查看>>
codeforces div 313
查看>>
四则运算缓冲流
查看>>
MySQL中间件之ProxySQL(8):SQL语句的重写规则
查看>>
Perl数据序列化和持久化(入门):Storable模块
查看>>
log4j中存在日志无法打印问题解决
查看>>
Netty中的Channel之数据冲刷与线程安全(writeAndFlush)
查看>>
c#中的重写(override)和重载(overload)的区别
查看>>
高效使用数码相机的诀窍
查看>>
mysql之内连接,外连接(左连接,右连接),union,union all的区别
查看>>
学习笔记 : python 文件操作
查看>>
html5 3D圣诞树源码
查看>>
json-server基本使用
查看>>
常用的几种距离的优劣
查看>>
图灵2010.11书讯
查看>>
项目经理如何有效地进行项目沟通?
查看>>
【原创】linux mint 17.3 kvm 安装windows7虚拟机
查看>>