`

设计模式在实际开发中的使用——模板方法模式

 
阅读更多

模板方法模式,定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

 

下面看一个模板方法模式在实际中的例子:maven的生命周期管理。

maven的生命周期对所有的构建过程进行了抽象和统一。这个生命周期包含了初始化、编译、测试、打包、验证、部署和站点生成等几乎所有的构建步骤。

maven的生命周期是抽象的,这意味着生命周期本身不做任何实际工作,实际的任务都交由插件来完成。这种思想与模板方法模式非常相似。模板方法模式在父类中定义算法的整体结构,子类可以通过实现或者重写父类的方法来控制实际的行为,这样既保证了算法有足够的可扩展型,又能够严格控制算法的整体结构。

 

public abstract class AbstractBuild {
	public void build(){
		initialize();
		compile();
		test();
		packagee();
		integrationTest();
		deploy();
	}
	protected abstract void initialize();
	protected abstract void compile();
	protected abstract void test();
	protected abstract void packagee();
	protected abstract void integrationTest();
	protected abstract void deploy();
}

build()方法定义了整个构建的过程,依次为初始化、编译、测试等,但是这个类没有具体实现这些行为,它们都交由子类去实现。

生命周期抽象了构建的各个步骤,定义了它们的次序,但没有提供具体实现。具体实现交个一个或者多个插件实现。

分享到:
评论

相关推荐

    java设计模式

    目录: 前 言 第一部分 大旗不挥,谁敢冲锋——热身篇 第1章 单一职责原则 1.1 我是“牛”类,我可以担任多职吗 1.2 绝杀技,打破你的传统思维 1.3 我单纯,所以我快乐 1.4 最佳实践 ...附录:23个设计模式

    PHPWeb开发技术指南——pdf格式

    8.3.4 在MarketPlayer.com产品开发中使用PHP的优势 217 8.3.5 PHP实际生活中的竞争 218 8.3.6 会话 218 8.3.7 PHP服务器集成 219 8.3.8 代码管理 219 8.3.9 前景 219 8.4 小结 219 8.5 参考 220 第三部分 深入研究...

    asp.net知识库

    .NET 2.0 泛型在实际开发中的一次小应用 C#2.0 Singleton 的实现 .Net Framwork 强类型设计实践 通过反射调用類的方法,屬性,字段,索引器(2種方法) ASP.NET: State Server Gems 完整的动态加载/卸载程序集的解决方案 ...

    SSM整合项目——学生管理系统.zip

    通过下载和使用这些项目,您将能够深入了解SSM框架的核心概念、设计模式和最佳实践。 二、项目特点 实战性强:这些项目均来自实际业务场景多个领域,具有很强的实战性和参考价值。 技术先进:所有项目均采用最新的...

    SSM实战项目(2)——图书管理系统.zip

    通过下载和使用这些项目,您将能够深入了解SSM框架的核心概念、设计模式和最佳实践。 二、项目特点 实战性强:这些项目均来自实际业务场景多个领域,具有很强的实战性和参考价值。 技术先进:所有项目均采用最新的...

    最新领域驱动设计(DDD)资料合集(23份).zip

    在一个实际复杂业务中落地DDD方法与相关架构 DDD促进传统架构微服务转型 DDD的为与不为 DDD实践中的那些坑 DDD在旅游电商架构演进中的实践 Every Entity as A Microservice Praise for Implementing Domain-Driven ...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    本书是第I卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用PHP进行Web开发的各个方面的知识和技巧,主要包括开发环境、PHP基础、Web页面交互、文件操作、会话应用、图形图像处理及面向...

    性能测试进阶指南——LoadRunner11实战 part2

    《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》结合了很多工作中的实际案例,图文并茂,既适合渴望了解性能测试的新人,也适合对性能测试有一定认识和经验的中、高级测试工程师。同时,《测试实践丛书:...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    本书是第I卷,以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用PHP进行Web开发的各个方面的知识和技巧,主要包括开发环境、PHP基础、Web页面交互、文件操作、会话应用、图形图像处理及面向...

    PHP.Web.2.0开发实战 12卷 终章

    书中提供了大量具有示范意义的代码,读者将直观地学到如何实际开发出用户登录、博客、搜索功能、动态图库、 Google Maps集成、标签、Web提要等功能,如何在实战中应用Zend Framework、Smarty模板引擎、Prototype等...

    PHP.Web.2.0开发实 12卷 之6

    书中提供了大量具有示范意义的代码,读者将直观地学到如何实际开发出用户登录、博客、搜索功能、动态图库、 Google Maps集成、标签、Web提要等功能,如何在实战中应用Zend Framework、Smarty模板引擎、Prototype等...

    性能测试进阶指南——LoadRunner11实战 part1

    《测试实践丛书:性能测试进阶指南·LoadRunner 11实战》结合了很多工作中的实际案例,图文并茂,既适合渴望了解性能测试的新人,也适合对性能测试有一定认识和经验的中、高级测试工程师。同时,《测试实践丛书:...

    PHP.Web.2.0开发实战 12卷 之1

    书中提供了大量具有示范意义的代码,读者将直观地学到如何实际开发出用户登录、博客、搜索功能、动态图库、 Google Maps集成、标签、Web提要等功能,如何在实战中应用Zend Framework、Smarty模板引擎、Prototype等...

    PHP.Web.2.0开发实战 12卷 之4

    书中提供了大量具有示范意义的代码,读者将直观地学到如何实际开发出用户登录、博客、搜索功能、动态图库、 Google Maps集成、标签、Web提要等功能,如何在实战中应用Zend Framework、Smarty模板引擎、Prototype等...

    PHP.Web.2.0开发实战 12卷 之3

    书中提供了大量具有示范意义的代码,读者将直观地学到如何实际开发出用户登录、博客、搜索功能、动态图库、 Google Maps集成、标签、Web提要等功能,如何在实战中应用Zend Framework、Smarty模板引擎、Prototype等...

    PHP.Web.2.0开发实战 12卷之5

    书中提供了大量具有示范意义的代码,读者将直观地学到如何实际开发出用户登录、博客、搜索功能、动态图库、 Google Maps集成、标签、Web提要等功能,如何在实战中应用Zend Framework、Smarty模板引擎、Prototype等...

    PHP.Web.2.0开发实战 12卷 之2

    书中提供了大量具有示范意义的代码,读者将直观地学到如何实际开发出用户登录、博客、搜索功能、动态图库、 Google Maps集成、标签、Web提要等功能,如何在实战中应用Zend Framework、Smarty模板引擎、Prototype等...

    PHP.Web.2.0开发实战 12卷 之六

    书中提供了大量具有示范意义的代码,读者将直观地学到如何实际开发出用户登录、博客、搜索功能、动态图库、 Google Maps集成、标签、Web提要等功能,如何在实战中应用Zend Framework、Smarty模板引擎、Prototype等...

    PHP.Web.2.0开发实战 12卷 之七

    书中提供了大量具有示范意义的代码,读者将直观地学到如何实际开发出用户登录、博客、搜索功能、动态图库、 Google Maps集成、标签、Web提要等功能,如何在实战中应用Zend Framework、Smarty模板引擎、Prototype等...

Global site tag (gtag.js) - Google Analytics