简单_模板方法模式(Template Method)

[img]http://dl.iteye.com/upload/attachment/0062/7369/0050e697-6914-382b-8990-95dc86b9c968.bmp[/img]


以“见人说人话见鬼说鬼话”来理解模板方法模式:

package design.templateMethod2;

/**
* @author 作者 E-mail: jqsl2012@163.com
* @version 创建时间:2012-2-4 下午08:21:37 <br>
*
*/
public class Test {
public static void main(String[] args) {
/*
* 模板方法模式(Template Method)
* 俗话说,见人说人话见鬼说鬼话,其实就是模版方法模式的最好理解。
* 模版方法模式其实就是在抽象类或接口中定义一个骨架,然后不同的子类有自己的实现。
* 模版方法模式和方法工厂模式有相似之处,方法工厂模式在抽象部分定义好创建产品的骨架,然后不同的
* 子类有各自的实现,那么可以这么看:
* 方法工厂模式是对创建产品的抽象;
* 模版方法模式是对具体实现的抽象;
* AbstractList.get()、ThreadPoolExecutor.Worker是模版方法模式在JDK中的体现。
*
* don't call us, we'll call u(不要来找我,我会去找你的)说的就是模版方法模式,
* 也体现了反向控制的思想,像IOC控制反转也是这种思想的体现。
*/
Template say = new SayPersonTalk();
say.say();

say = new SayGhostTalk();
say.say();
}
}

package design.templateMethod2;

/**
* @author 作者 E-mail: jqsl2012@163.com
* @version 创建时间:2012-2-4 下午08:22:00 <br>
* 说话模版
*/
public abstract class Template {
public abstract void say();
}

package design.templateMethod2;

/**
* @author 作者 E-mail: jqsl2012@163.com
* @version 创建时间:2012-2-4 下午08:23:15 <br>
* 说人话
*/
public class SayPersonTalk extends Template {

@Override
public void say() {
System.out.println("说人话。。。");
}

}

package design.templateMethod2;

/**
* @author 作者 E-mail: jqsl2012@163.com
* @version 创建时间:2012-2-4 下午08:24:04 <br>
* 说鬼话
*/
public class SayGhostTalk extends Template {

@Override
public void say() {
System.out.println("说鬼话。。。");
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值