商务型网站怎么运作网站建设报价单-中英文版
2026/4/5 21:22:53 网站建设 项目流程
商务型网站怎么运作,网站建设报价单-中英文版,wordpress首页不显示文章标题,河源市新闻最新消息文章目录1. 引言#xff1a;重复流程是如何产生的#xff1f;2. 什么是模板方法模式GoF 定义结构3. 模板方法模式的核心思想4. 模式结构5. 示例#xff1a;数据导出流程5.1 抽象模板5.2 具体实现5.3 客户端使用6. 钩子方法#xff08;Hook#xff09;7. 模板方法的优点8. …文章目录1. 引言重复流程是如何产生的2. 什么是模板方法模式GoF 定义结构3. 模板方法模式的核心思想4. 模式结构5. 示例数据导出流程5.1 抽象模板5.2 具体实现5.3 客户端使用6. 钩子方法Hook7. 模板方法的优点8. 模板方法的缺点9. JDK 中的模板方法AbstractList10. 模板方法 vs 外观模式11. 适用场景参考1. 引言重复流程是如何产生的在很多系统中你会看到大量这样的代码voidprocess(){step1();step2();step3();}但不同子类的step2()又不一样Excel 导出PDF 导出CSV 导出流程是固定的但实现细节不同。如果每个类都自己写一套流程就会代码重复容易出错难以维护模板方法模式就是为了解决“流程固定步骤变化”的问题。流程不变步骤可变这就是模板方法。2. 什么是模板方法模式GoF 定义在一个方法中定义算法的骨架而将一些步骤延迟到子类中。详细解释定义一个操作中的算法骨架而将算法的一些步骤延迟到子类中使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤。结构一句话理解父类规定流程子类实现细节。3. 模板方法模式的核心思想模板方法模式强调的是控制权反转IoC父类决定调用顺序子类只负责实现。4. 模式结构包含两个核心角色抽象类AbstractClass负责给出一个算法的轮廓和骨架。它由一个模板方法和若干个基本方法构成。模板方法定义了算法的骨架按某种顺序调用其包含的基本方法。基本方法是实现算法各个步骤的方法是模板方法的组成部分。基本方法又可以分为三种抽象方法(Abstract Method) 一个抽象方法由抽象类声明、由其具体子类实现。具体方法(Concrete Method) 一个具体方法由一个抽象类或具体类声明并实现其子类可以进行覆盖也可以直接继承。钩子方法(Hook Method) 在抽象类中已经实现包括用于判断的逻辑方法和需要子类重写的空方法两种。一般钩子方法是用于判断的逻辑方法这类方法名一般为isXxx返回值类型为boolean类型。具体子类ConcreteClass实现抽象类中所定义的抽象方法和钩子方法它们是一个顶级逻辑的组成步骤。5. 示例数据导出流程5.1 抽象模板publicabstractclassDataExporter{// 模板方法publicfinalvoidexport(){connect();readData();writeData();close();}protectedvoidconnect(){System.out.println(连接数据库);}protectedvoidclose(){System.out.println(关闭连接);}protectedabstractvoidreadData();protectedabstractvoidwriteData();}注意为防止恶意操作一般模板方法都加上 final 关键词。5.2 具体实现publicclassExcelExporterextendsDataExporter{OverrideprotectedvoidreadData(){System.out.println(读取 Excel 数据);}OverrideprotectedvoidwriteData(){System.out.println(写入 Excel 文件);}}publicclassPdfExporterextendsDataExporter{OverrideprotectedvoidreadData(){System.out.println(读取 PDF 数据);}OverrideprotectedvoidwriteData(){System.out.println(写入 PDF 文件);}}5.3 客户端使用DataExporterexporternewExcelExporter();exporter.export();输出流程始终一致。6. 钩子方法HookprotectedbooleanneedLog(){returnfalse;}子类可选择性覆盖。模板方法 固定流程 可插拔步骤7. 模板方法的优点消除重复代码统一流程规范符合开闭原则控制执行顺序8. 模板方法的缺点依赖继承子类受父类约束不够灵活9. JDK 中的模板方法AbstractListadd()→add(int,E)父类控制流程子类实现底层存储。10. 模板方法 vs 外观模式维度模板方法模式外观模式模式类型行为型模式结构型模式关注点算法步骤的扩展接口简化继承关系使用继承使用组合灵活性子类可改变部分行为隐藏子系统复杂性使用层次同一抽象层次不同层次之间11. 适用场景工作流框架设计代码生成导入导出参考模板模式 | 菜鸟教程《图解设计模式》模板方法 - Java教程 - 廖雪峰的官方网站模板方法设计模式

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询