`
1140566087
  • 浏览: 547863 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18078
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:309558
Group-logo
J2ME 基础学习课程集
浏览量:18008
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17196
社区版块
存档分类
最新评论

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);				
			}});
	}
}


回调(钩子):

package com.svse.combinetemplate;

/**
 * 接口
 * @author Administrator
 *
 */
public interface CallBack {

	public void doInTemplate();
}


具体的实现类:
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);
	}
}


0
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics