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

广西南宁官方网站企业wordpress和ueeshop

广西南宁官方网站企业,wordpress和ueeshop,网游排行榜2021排行榜,深圳律师网站建设Java 模板方法模式是一种行为型设计模式#xff0c;它定义了一个算法的骨架#xff0c;并将一些步骤延迟到子类中实现。模板方法模式使得子类可以在不改变算法结构的情况下重定义算法中的某些步骤。 使用场景 算法骨架固定#xff1a;如果一个算法的基本结构已经固定#…Java 模板方法模式是一种行为型设计模式它定义了一个算法的骨架并将一些步骤延迟到子类中实现。模板方法模式使得子类可以在不改变算法结构的情况下重定义算法中的某些步骤。 使用场景 算法骨架固定如果一个算法的基本结构已经固定但具体的实现步骤可能因为不同的场景而不同这个时候可以使用模板方法模式。实现代码复用如果有多个类的某些方法结构相似但是实现细节不同这个时候可以将这些相同的结构抽象到父类中由子类来实现不同的细节。简化代码实现模板方法模式可以将复杂的代码实现分离成几个简单的步骤从而降低代码实现的难度和复杂度。框架和库的设计模板方法模式是设计框架和库的重要方式之一它可以提供统一的接口和标准的实现流程方便用户进行扩展和定制 代码示例 AbstractClass 是一个抽象类它定义了算法的骨架其中 templateMethod() 是模板方法它定义了算法的流程由一些抽象方法 primitiveOperation1() 和 primitiveOperation2() 组成。   ConcreteClass 是 AbstractClass 的具体子类它实现了抽象方法定义了具体的算法细节。在客户端使用时创建 ConcreteClass 然后调用其 templateMethod() 方法即可完成算法的执行。 代码示例如下 抽象类定义算法骨架 public abstract class AbstractClass {// 模板方法定义算法流程public final void templateMethod() {primitiveOperation1();primitiveOperation2();}// 抽象方法1由子类实现public abstract void primitiveOperation1();// 抽象方法2由子类实现public abstract void primitiveOperation2(); }具体子类实现具体的算法细节 public class ConcreteClass extends AbstractClass {Overridepublic void primitiveOperation1() {System.out.println(ConcreteClass.primitiveOperation1());}Overridepublic void primitiveOperation2() {System.out.println(ConcreteClass.primitiveOperation2());} }客户端使用 public class Client {public static void main(String[] args) {AbstractClass abstractClass new ConcreteClass();abstractClass.templateMethod();} } 需要注意的是在模板方法模式中模板方法通常被声明为 final以防止子类对其进行重写。同时由于模板方法是一个抽象方法因此在实现时需要注意不同抽象方法的实现顺序以确保算法的正确性。 Spring 中的 JdbcTemplate 在 JdbcTemplate 类中定义一个 execute 方法该方法接收一个 ConnectionCallback 或 StatementCallback 对象作为参数。这些回调对象实现了具体的数据库操作逻辑。在 execute 方法中根据传入的回调对象类型创建相应的 PreparedStatement 或 Statement 对象并调用回调对象的 doInConnection 或 doInStatement 方法执行具体的数据库操作。将数据库连接、PreparedStatement 或 Statement 对象等资源关闭的操作封装在 finally 代码块中确保资源能够被正确释放。 代码如下 public T T execute(ConnectionCallbackT action) throws DataAccessException {Assert.notNull(action, Callback object must not be null);Connection con DataSourceUtils.getConnection(obtainDataSource());try {Connection conToUse createConnectionProxy(con);return action.doInConnection(conToUse);}catch (SQLException ex) {String sql getSql(action);DataSourceUtils.releaseConnection(con, getDataSource());con null;throw translateException(ConnectionCallback, sql, ex);}finally {DataSourceUtils.releaseConnection(con, getDataSource());}}JdbcTemplate 类的 execute 方法接收一个 ConnectionCallback 对象作为参数然后根据该对象执行具体的数据库操作。这样JdbcTemplate 就实现了模板模式将数据库操作的具体逻辑封装在 ConnectionCallback 对象中而 JdbcTemplate 只负责管理数据库连接和资源释放。 优点 代码复用性模板模式通过将类的共同部分代码抽象出来放在父类中使得子类只需要实现差异部分这大大减少了子类的重复代码。可扩展性当需要新增功能时可以通过子类来实现扩展而不需要改动原有的代码和代码框架这符合软件设计的“开闭原则”即对扩展开放对修改封闭。灵活性所有子类实现的是同一套算法模型在使用模板的地方可以通过切换不同的子类来实不同的功能这符合“里氏替换原则”。维护性由于模板模式的行为由父类控制子类实现这样的结构清晰有利于维护。 缺点 复杂性对于一些简单的任务使用模板模式可能会引入不必要的复杂性。继承的限制模板模式基于继承这意味着它可能不适用于所有的编程语言或框架特别是那些不支持继承的语言或框架。设计习惯我们平常的设计习惯可能更偏向于直接实现功能而不是先定义一个模板方法这可能需要一定的适应时间。
http://www.zqtcl.cn/news/798918/

相关文章:

  • 装修网站模板国家正规现货交易平台
  • 福州高端网站制作网站建设项目单子来源
  • 网站制作的行业广州网站推广方案
  • 网站主域名建设通怎么样
  • 网站是如何建立的广告设计与制作工作内容
  • 网站优化课程培训公司取名生成器免费
  • 如何设立网站做外国网站买域名
  • 惠州网站建设公司排名聊城专业网站设计公司
  • 网站建设龙岗电子商务有限公司官网
  • 分栏型网站服装设计网站模板
  • 建设网站备案与不备案区别企业网站怎么做排名
  • php mysql的网站开发html网站制作答辩ppt
  • 网站制作有名 乐云践新专家网页制作公司需要什么资质
  • 织梦怎么用框架实现在浏览器的地址栏只显示网站的域名而不显示出文件名电脑网站模板
  • 北京网络营销网站品牌营销增长公司哪家好
  • 网站反链有好处吗稷山网站建设
  • 廊坊网站群发关键词怎么在百度上推广自己的公司信息
  • 网站开发 沈阳免费模板建站
  • 商业性质网站建设步骤wordpress电影网盘
  • 网站的外部推广成都房产网官网
  • 深圳网站建设创想营销北京土巴兔全包装修价格表
  • 怎么发布php网站邯郸建设网站制作
  • 手机网站做多宽的图片wordpress顶部导航栏怎么创建
  • 如何做招聘网站的数据分析安徽黄山旅游攻略
  • 2022建站市场国际新闻直播
  • 茗哥网站建设装饰公司网站规划方案
  • 北京天津网站建设公司做平台网站要多久
  • 做我女朋友的表白句的网站做seo_教你如何选择网站关键词
  • 如何对网站用户分析徐州网站制作如何定位
  • 网站定制生成器龙岗网站设计讯息