
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在上文中给大家简单介绍了Java编程开发程序员需要掌握的工厂设计模式的一些基础知识等内容,而本文我们就通过案例分析继续来学习一下,软件开发模板设计模式应用优缺点。
在实现模板方法模式时,开发抽象类的软件设计师和开发具体子类的软件设计师之间可以进行协作。一个设计师负责给出一个算法的轮廓和框架,另一些设
计师则负责给出这个算法的各个逻辑步骤。实现这些具体逻辑步骤的方法即为基本方法,而将这些基本方法汇总起来的方法即为模板方法,模板方法模式的
名字也因此而来。下面将详细介绍模板方法和基本方法:
模板方法
一个模板方法是定义在抽象类中的、把基本操作方法组合在一起形成一个总算法或一个总行为的方法。这个模板方法定义在抽象类中,并由子类不加以修改
地完全继承下来。模板方法是一个具体方法,它给出了一个顶层逻辑框架,而逻辑的组成步骤在抽象类中可以是具体方法,也可以是抽象方法。由于模板方法
是具体方法,因此模板方法模式中的抽象层只能是抽象类,而不是接口。
基本方法
基本方法是实现算法各个步骤的方法,是模板方法的组成部分。基本方法又可以分为三种:抽象方法(AbstractMethod)、具体方法(ConcreteMethod)和钩子方法(HookMethod)。
(1)抽象方法:一个抽象方法由抽象类声明、由其具体子类实现。
(2)具体方法:一个具体方法由一个抽象类或具体类声明并实现,其子类可以进行覆盖也可以直接继承。
(3)钩子方法:一个钩子方法由一个抽象类或具体类声明并实现,而其子类可能会加以扩展。通常在父类中给出的实现是一个空实现,并以该空实
现作为方法的默认实现,当然钩子方法也可以提供一个非空的默认实现。
钩子可以让子类实现算法中可选的部分,或者在钩子对于子类的实现并不重要的时候,子类可以对此钩子置之不理。钩子的另一个用法,是让子类能够有机会
对模板方法中某些即将发生的(或刚刚发生的)步骤做出反应。
模板方法模式的优缺点
优点
1)良好的封装性。把公有的不变的方法封装在父类,而子类负责实现具体逻辑。
2)良好的扩展性:增加功能由子类实现基本方法扩展,符合单一职责原则和开闭原则。
3)复用代码。
缺点
1)由于是通过继承实现代码复用来改变算法,灵活度会降低。
2)子类的执行影响父类的结果,增加代码阅读难度。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。