模板方法模式(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()); } }
哈哈,不错的代码,学习了哈~
相关推荐
C语言编写高质量代码,想学习规范C语言的可以看看。
本书的核心内容是围绕Web前端开发的三大技术要素——HTML、CSS和JavaScript来深入地探讨编写高质量的HTML代码、CSS代码和JavaScript代码的方法、技巧、规范和最佳实践,从而为编写易于维护的Web前端代码打下坚实的...
编写高质量代码,适合有一定基础的编程者学习。
第 1 章主要讲述最基本的主题,如版本、类型转换要点、运算符注意事项和分号局限等。第 2 章主要讲解变量作用域,介绍此方面的一些基本概念,以及一些最佳实践经验。
改善C#的157个建议编写高质量代码.zip
编写高质量代码:改善C#程序的150个建议完整版,提高代码整合开发能力
编写高质量代码-web前端开发修炼之道-源代码.pdf
编写高质量javascript代码的68方法..........................
从基本语法、应用架构、工具框架、编码风格、编程思想等5大方面对web前端工程师遇到的疑难问题给出了经验性的解决方案,为web前端工程师如何编写更高质量的javascript代码提供了188条极为宝贵的建议。对于每一个问题...
编写高质量代码 改善Java程序的151个建议 PDF高清完整版
《编写高质量代码:改善C++程序的150个建议》是李健编写的图书,该书是c++程序员进阶修炼的必读之作,包含的全部都是c++编码的最佳实践,从语法、编码...为c++程序员编写更高质量的c++代码提供了150条极为宝贵的建议。
探讨编写高质量的HTML 代码、CSS 代码和JavaScript 代码的方法、技巧、规范和最佳实践,从而 为编写易于维护的Web 前端代码打下坚实的基础。这不是一本单纯的“技术”书籍,没有系统地 讲解Web 前端开发的基础知识,...
Effective SQL:编写高质量SQL语句的61个有效方法 AW.Effective.SQL.61.Specific.Ways.to.Write.Better.SQL.
编写可读代码的艺术-完整版(带书签),PDF文档,字数字数字数字数字数
编写高质量代码 —Web 前端开发修炼之道
包含的全部都是c#编码的最佳实践,从语言本身、程序的设计和架构、编码规范和编程习惯等三大方面对c#程序员遇到的经典问题给出了经验性的解决方案,为c#程序员如何编写更高质量的c#代码提供了157条极为宝贵的建议。...
本书从C语言语法和C11标准2个方面深入探讨了编写高质量C代码的技巧与禁忌, 一共总结出125条宝贵的建议。每一个建议对应C程序员可能会遇到的一类问题, 不仅以建议的方式从正反两面给出了实践证明为十分优秀的解决方案...
微软四大名著之编程精粹:编写高质量C语言代码。亚马逊评出的微软四大名著之一,经典。
Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!