读编写高质量代码整理(十一)—反射让模板方法模式更强大

模板方法模式(Template Method Pattern )的定义:定义一个操作中的算法骨架,将一些步骤延迟到子类中,使子类不改变一个算法的结构即可重新定义该算法的某些特定步骤。

考虑这样的场景:你要造房子,首先你要有地基,还要有砖块,有搬运工,泥水匠等,你要造一个房子,前途要完成很多东西,抽象成我们的java类,一个house对象的产生需要很多前期准备,如果每个因素分为一个方法,那么如何是代码看起来更加美观呢?造房子无非上述的流程,对,我这里可以做抽象,具体的实现留给子类。模仿方法模式从此引出。

代码是最直观的语言:

public abstract class AbsPopulator {
	public  final void dataInitialing() throws Exception {
		//获得所有pulic方法
		Method[] method = this.getClass().getMethods();
		for(int i=0,size=method.length;i<size;i++) {
			if(isInitDataMethod(method[i])) {
				method[i].invoke(this);
			}
		}
	}
	public boolean isInitDataMethod(Method method) {
		return method.getName().startsWith("init")
			&&Modifier.isPublic(method.getModifiers())
			&&method.getReturnType().equals(Void.TYPE)
			&&!method.isVarArgs()
			&&!Modifier.isAbstract(method.getModifiers());
	}
}

哈哈,不错的代码,学习了哈~ 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值