`

模板方法模式(未总结透)

 
阅读更多
 

 

 

1 初识模板方法模式:

 

定义: 定义一个操作中算法的骨架,而将一些步骤延迟到子类中; 模板方法使得子类可以不改变一个算法基本结构既可重定义该算法的某些特定步骤;

 

结构:

 

 

参考实现:

 

抽象类: 定义算法/操作骨架
public abstract class AbstractClass {
	/**
	 * 原语操作1,所谓原语操作就是抽象的操作,必须要由子类提供实现
	 */
	public abstract void doPrimitiveOperation1();
	/**
	 * 原语操作2
	 */
	public abstract void doPrimitiveOperation2();
	/**
	 * 模板方法,定义算法骨架
	 */
	public final void templateMethod() {
		doPrimitiveOperation1();
		doPrimitiveOperation2();
	}
}

具体实现类: 实现 算法/操作骨架
public class ConcreteClass extends AbstractClass {
	public void doPrimitiveOperation1() { 
		//具体的实现
	}
	public void doPrimitiveOperation2() { 
		//具体的实现
	}
}

 

 

2 体会模板方法模式:

 

 场景问题: 系统登录,  普通用户登录前台, 工作人员登录 各写一套登录验证逻辑;

可以进行抽像:将登录功能公共方法抽象成一个抽象类, 不同人员的登录在继承这个抽象类后,在具体实现子类中写自己的业务逻辑;

 

 

3 理解模板方法模式:

 

认识模板方法模式: 此模式特点在于 固定算法骨架,在子类中让具体算法实现和扩展;

                                 多应用于设计框架级功能,框架固定好算法步骤,在合适的点让开发人员进行扩展;

                                 eg: javaee中的dao层接口 和 daoImpl类

                                同时还能控制子类的扩展,因为父类定义中用于扩展的点都用abstract,如果不想让子类扩展可以直接定义成final; 而这些可以被子类覆盖以扩展的方法 常称为“钩子”;

 

 

 

 

抽象类和接口之间关系:

接口是一个特殊的抽象类,即所有方法都是抽象的,不会再有任何正常已实现的方法

抽象类可以没有抽象方法,仅仅在类头顶上增加 abastract即可;里面可以有正常的方法

 

那么抽象类中,将功能不变的那些方法抽象出来进行公共实现,

把变化部分分离出来,用接口封装隔离,或用抽象类约束子类行为;

 

 

 

 

java回调与模板方法模式:

java通过回调在接口中定义的方法,调用到具体实现类的方法,本质就是利用java动态绑定技术,在回调这种技术中,实现类通常写成匿名内部类方式;

java回调下提供的接口,那么具体实现类中的方法就必须要实现所有的方法,

而模板方法模式中使用的是抽象类,那么具体实现子类中可以有所选择实现父类的方法,

java回调下提供的接口限制较死;

 

java回调典型应用: 

 排序---> public static <T> void sort(List<T> list,  Comparator<? super T> c)

这个算法步骤是固定的,即使算法骨架是固定的,而其中比较数据大小时,需要外部来提供,这个外部就是

comparator接口的实例,算法内部会通过接口回调来调用传入实例的方法;

 

 

 

实现通用增删改查: eg  dao层接口代码

 

 

优缺点:

1 实现代码复用

2 算法骨架不容易升级

 

 

 

4 思考模板方法模式:

本质:固定算法骨架

何时使用:

a) 固定定义算法的骨架,并把可变的行为交给子类来实现

b) 子类中拥有的公共行为应该抽取出来,集中在公共类中,避免代码重复

c) 需要控制子类扩展

 

 

 

5 模板方法模式脑图:

 

暂无  没理解透...

 

 

 

  • 大小: 107.9 KB
分享到:
评论

相关推荐

    设计模式精心总结

    2. 模板方法模式(Template Method):模板方法模式在一个方法中定义了一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 3. 观察者模式...

    C++设计模式大总结

    - 设计模式是在软件设计过程中遇到的常见问题的解决方案模板,它不是代码,而是一种经验总结。 - 设计模式分为创建型、结构型和行为型三类,每种类型都包含若干个具体的模式。 2. **创建型设计模式** - 单例模式...

    blend4制作透明按钮控件模板

    4. **进入模板编辑模式**:选择进入控件模板编辑模式。 5. **添加背景图片**:将Photoshop中制作好的透明背景图片添加到Button模板中。 6. **添加TextBlock**:再次添加一个TextBlock控件用于显示按钮文本。 - **...

    23种设计模式总结(2020最新版).pdf

    2. **模板方法模式**:定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 3. **观察者模式**:定义对象间的一种一对多的依赖关系,当一个...

    Java23种设计模式(总结)

    ##### 3.10 模板方法模式 - **定义**:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 - **适用场景**: - 一次性...

    会议洽谈总结ppt模板下载

    "会议洽谈总结ppt模板下载"这个资源提供了一个专为商务合作主题设计的PPT模板,旨在帮助专业人士更好地呈现他们的观点、数据和提案。 首先,我们要理解PPT模板在会议洽谈中的作用。模板不仅能够统一演示文稿的视觉...

    个人总结:发明专利说明书参考模板

    ### 个人总结:发明专利说明书参考模板 #### 技术领域 本发明主要聚焦于展览行业中对参展人员消费偏好的调查分析方法与系统,特别强调利用RFID(射频识别)技术自动化获取参展人员消费偏好信息。 #### 背景技术 ...

    23种设计模式

    3. 行为型模式(Behavioral Patterns):这十一种模式关注对象之间的交互和职责分配,包括策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式和...

    扁平化工作个人总结ppt模板

    因此,个人在这种模式下进行工作时,如何高效地进行工作总结并向上级和团队清晰展示,是衡量个人能力的一个重要标准。 为此,设计一套扁平化工作个人总结PPT模板,旨在帮助职场人士更直观、更高效地汇报工作成果。...

    Direct界面透明模块.rar

    总结来说,"Direct界面透明模块.rar"是一个包含易语言源代码的压缩包,它提供了在Windows平台上创建具有透明效果用户界面的方法。开发者可以研究这些源码,了解如何使用易语言和DirectUI技术来实现透明界面,从而...

    Excel模板促销业绩透视分析.zip

    在Excel中进行数据分析是许多企业和个人提升工作效率的重要手段,尤其在销售业绩管理中,透视分析是一种非常实用的方法。"Excel模板促销业绩透视分析.zip"这个压缩包文件包含了一个名为"促销业绩透视分析.xlsx"的...

    设计模式精解 GoF 23种设计模式解析与总结 C++实现

    - **模板方法模式**(Template Method):在父类中定义一个操作中的算法骨架,而将一些步骤延迟到子类中。 - **命令模式**(Command):将请求封装为一个对象,以便使用不同的请求、队列请求、或者支持撤销操作。 ...

    研磨设计模式PDF

    设计模式是软件工程中的一种最佳实践,它总结了在特定上下文中解决问题的常见方法,使得开发者可以复用这些解决方案,提高代码质量,降低维护成本。下面将深入探讨设计模式的重要性和其在实际开发中的应用。 设计...

    PSD分层模板_男女证件照服装模板

    总结来说,"PSD分层模板_男女证件照服装模板"是Photoshop设计者为了方便证件照制作而创建的专业资源。它提供了一种高效、便捷的方式,让用户能够快速生成符合规范的证件照,无论是需要标准的背景色,还是需要更换...

    设计模式可复用面向对象软件的基础.zip

    5.10 TEMPLATE METHOD(模板方法) —类行为型模式 214 5.11 VISITOR(访问者)—对象行为型 模式 218 5.12 行为模式的讨论 228 5.12 1 封装变化 228 5.12.2 对象作为参数 228 5.12.3 通信应该被封装还是被分布 229 ...

    总结汇报ppt模板 (62).pptx

    【总结汇报PPT模板】 本PPT模板是用于制作总结汇报的通用模板,适用于行政人事部门的工作总结。模板设计简洁,以花卉与文学小清新的风格呈现,旨在清晰、直观地展示公司行政人事部过去一年的工作成果、存在的问题...

    Head First Java设计模式(高清中文完整版+附书源码)

    包括创建型模式(如单例模式、工厂方法模式、抽象工厂模式)、结构型模式(如适配器模式、装饰器模式、代理模式、桥接模式、组合模式、外观模式、享元模式)和行为型模式(如策略模式、模板方法模式、观察者模式、...

    Excel模板各类别费用支出分析透视图表.zip

    7. **总结和解读**:在分析完成后,通常会有总结区域,对关键发现进行文字描述,如总体费用趋势、异常费用项目等,帮助决策者快速理解分析结果。 8. **预测与规划**:如果模板设计得较为高级,可能还会包括预测功能...

    设计模式(.PDF)

    5.10 TEMPLATE METHOD(模板方法) —类行为型模式 214 5.11 VISITOR(访问者)—对象行为型 模式 218 5.12 行为模式的讨论 228 5.12 1 封装变化 228 5.12.2 对象作为参数 228 5.12.3 通信应该被封装还是被分布 229 ...

Global site tag (gtag.js) - Google Analytics