当前位置: 首页 > news >正文

建设网站元素搜索引擎响应式网站难做

建设网站元素搜索引擎,响应式网站难做,如何更换wordpress域名,郑州同济医院正规吗文章目录 引言模板方法模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用游戏设计示例代码地址 引言 设想你正在准备一顿晚餐#xff0c;无论你想做意大利面、披萨还是沙拉#xff0c;制作过程中都有一些共同的步骤#xff1a;准备原料、加工食物、摆盘。… 文章目录 引言模板方法模式简介定义与用途实现方式 使用场景优势与劣势在Spring框架中的应用游戏设计示例代码地址 引言 设想你正在准备一顿晚餐无论你想做意大利面、披萨还是沙拉制作过程中都有一些共同的步骤准备原料、加工食物、摆盘。这里整个烹饪流程就像一个模板而具体的菜肴则在这个模板的基础上添加了特有的步骤。在软件开发中我们经常遇到类似的情况某些过程的结构相同但某些步骤的具体实现不同。模板方法模式正是用于解决这类问题的一种设计模式它在定义算法骨架的同时将一些步骤的实现延迟到子类。 模板方法模式简介 定义与用途 模板方法模式Template Method Pattern是一种行为型设计模式它在父类中定义了一个操作的算法骨架而将一些步骤的具体实现延迟到子类中。通过这种方式可以重新定义算法的某些步骤而不改变算法的结构。 实现方式 实现模板方法模式通常涉及以下几个关键组件 抽象类Abstract Class定义了模板方法和算法的骨架。模板方法设置为 final这样它就不能被重写。它调用一系列的操作其中一些操作由子类实现。具体类Concrete Class实现抽象类中的抽象方法定义了算法中与特定主题相关的步骤。 使用场景 模板方法模式适用于以下场景 当有多个算法具有相同的算法结构但算法的某些步骤在不同的情况下有不同的实现时。当需要控制子类扩展的点时可以在一些操作中定义钩子hook。 例如 数据解析框架 定义一个解析数据的模板方法具体的解析步骤如读取数据、分析数据和处理数据可以在子类中实现。软件构建过程 软件构建工具可以定义一系列构建步骤的模板如清理、编译、测试和打包具体的步骤根据不同的项目而定制。游戏设计 游戏可以定义一个游戏流程模板如开始游戏、进行游戏和结束游戏具体的游戏逻辑在不同的游戏子类中实现。 优势与劣势 优势 提供了代码复用的平台通过模板方法公共代码移动到单一位置减少代码冗余。提供了一种扩展部分算法的方法子类可以在不改变算法结构的情况下重新定义算法的某些特定步骤。 劣势 对于每个不同的实现都需要一个新的子类可能会导致系统中类的数量增加。有时候可能违背了里氏替换原则因为子类改变了父类的预期行为。 在Spring框架中的应用 1. JdbcTemplate JdbcTemplate 是Spring提供的一个优秀的数据库操作工具它实现了模板方法模式。Spring定义了一个抽象的 JdbcOperations 接口提供了执行数据库操作的模板方法。JdbcTemplate 类实现了这些方法管理数据库连接、声明语句的创建和执行、结果集的遍历处理等。用户只需要提供SQL语句和定义如何映射结果集到对象其他的数据库操作细节如异常处理、事务管理等都由模板方法处理。2. TransactionTemplate Spring的 TransactionTemplate 也是模板方法模式的一个应用实例。它提供了一个模板用于执行带有事务管理的代码块。用户只需要提供需要在事务环境中执行的代码而事务的管理开始、提交、回滚等则是在模板内部处理的。这使得用户不需要直接与底层的事务API打交道简化了事务管理的代码。3. Spring Web MVC 在Spring Web MVC框架中DispatcherServlet 提供了一个模板方法来处理HTTP请求。它定义了处理请求的整体流程解析请求、寻找对应的处理器、渲染视图等。在这个流程中可以插入各种预处理器、后处理器和视图解析器来定制请求处理的行为。开发者通过扩展特定的方法提供自己的处理逻辑。4. Spring Security Spring Security中的过滤器链也是一个模板方法模式的实例。它定义了一系列的安全检查过程每一个过滤器都是一个检查的实现。开发者可以通过添加或移除过滤器或者自定义过滤器来定制安全检查的流程。游戏设计示例 步骤 1创建一个带有模板方法的抽象类 public abstract class Game {abstract void initialize();abstract void startPlay();abstract void endPlay();// 模板方法public final void play(){// 初始化游戏initialize();// 开始游戏startPlay();// 结束游戏endPlay();} }Game 是一个抽象类定义了三个抽象方法initialize、startPlay 和 endPlay用于子类实现具体的游戏初始化、开始和结束的行为。它还定义了一个模板方法 play该方法按顺序调用这三个方法设置为 final 以防止子类覆盖。 步骤 2创建扩展上述类的具体类 public class Cricket extends Game {Overridevoid endPlay() {System.out.println(板球游戏结束了);}Overridevoid initialize() {System.out.println(板球游戏初始化了开始玩吧。);}Overridevoid startPlay() {System.out.println(板球游戏开始了。享受游戏);} }Cricket 是 Game 的一个具体子类它实现了板球游戏的具体行为。 public class Football extends Game {Overridevoid endPlay() {System.out.println(足球游戏结束了);}Overridevoid initialize() {System.out.println(足球游戏初始化了开始玩吧。);}Overridevoid startPlay() {System.out.println(足球游戏开始了。享受游戏);} } Football 是另一个具体的 Game 子类实现了足球游戏的具体行为。 步骤 3使用游戏的模板方法 play() 来演示游戏的定义方式 public class TemplatePatternDemo {public static void main(String[] args) {Game game new Cricket();game.play();System.out.println();game new Football();game.play(); } }在这个演示类中先创建了一个 Cricket 对象并调用其 play 方法来执行整个板球游戏流程。然后创建了一个 Football 对象并再次调用 play 方法来执行足球游戏流程。 这个示例演示了模板方法模式如何定义算法的骨架同时将一些步骤的具体实现延迟到子类中。通过这种方式Cricket 和 Football 可以有自己独特的游戏流程同时共享游戏流程的结构。这使得算法的结构定义一次可以被多次复用而且更容易进行扩展。 代码地址 23种设计模式相关代码后续会逐步提交到github上方便学习欢迎指点 代码地址 https://github.com/RuofeiSun/lf-23Pattern
http://www.w-s-a.com/news/527854/

相关文章:

  • 网站的风格对比信息表广告门
  • 教育网站建设毕业设计说明书门户网站模式
  • 洛阳霞光建设网站html做分模块的网站
  • 域名建议网站wordpress 伪静态html
  • 网站风格化设计方案免费模式营销案例
  • 凤翔网站建设农村建设自己的网站首页
  • 怎样用网站做单笔外贸建筑设计公司合作加盟
  • 建网站买的是什么网站开发三层结构
  • wordpress图纸管理网站2345网址导航智能主版
  • 想调用等三方网站数据该怎么做培训课程
  • 高端营销网站建设wordpress咨询
  • 网站搜索框如何做创业怎么做网站
  • 网站手机版管理链接产品推广找哪家公司
  • vuejs 可做网站吗蜘蛛互联网站建设
  • 沈阳网站备案查询17zwd一起做业网站
  • 石家庄大型公司建站广州设计网站培训学校
  • 如何让百度收录中文域名网站wordpress前台管理评论
  • 铁岭 建筑公司网站 中企动力建设佛山app开发公司
  • 网站开发用的电脑深圳专业网站建设服务
  • 内容营销价值wordpress博客优化插件
  • 最优惠的郑州网站建设淘宝网商城
  • 做封面网站企业网站优化服务商
  • 电子商务网站设计是什么蚌埠铁路建设监理公司网站
  • .name后缀的网站做房产网站多少钱
  • 手机上传网站源码网站app封装怎么做
  • 做的网站放在阿里云网站建设投标书范本
  • 做文化传播公司网站wordpress仿简书
  • 什么网站有题目做西宁网站制作哪里好
  • 网站上添加图片的原则优易主机 wordpress
  • 用php做的网站源代码那里有做像美团的网站的