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

山东省住房与建设厅网站首页crm客户管理系统

山东省住房与建设厅网站首页,crm客户管理系统,网页制作与设计考的在哪查房,站长之家ip地址归属查询什么是模板方法模式 模板方法模式#xff1a;定义一个操作中的算法的骨架#xff0c;而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 主要解决#xff1a;一些方法通用#xff0c;却要在每一个子类都重写这些方法…什么是模板方法模式 模板方法模式定义一个操作中的算法的骨架而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 主要解决一些方法通用却要在每一个子类都重写这些方法。 大概实现将需要实现的算法抽象成一组步骤在抽象类中定义好相关步骤的执行流程其他需要自定义的特定步骤放到子类实现。 模板方法模式中的方法 模板方法中的方法可以分为两大类模板方法和基本方法。 模板方法 一个模板方法是定义在抽象类中的把基本操作方法组合在一起形成一个总算法或一个总行为的方法。 一个抽象类可以有任意多个模板方法而不限于一个。每一个模板方法都可以调用任意多个具体方法。 基本方法 基本方法又可以分为三种抽象方法(Abstract Method)、具体方法(Concrete Method)和钩子方法(Hook Method)。 ●  抽象方法由抽象类声明由具体子类实现。在Java语言里抽象方法以abstract关键字标示。 ●  具体方法由抽象类声明并实现而子类并不实现或置换。 ●  钩子方法由抽象类声明并实现而子类会加以扩展。通常抽象类给出的实现是一个空实现作为方法的默认实现。简单点来说就是在模板方法模式的父类中我们可以定义一个方法它默认不做任何事子类可以视情况要不要覆盖它该方法就被称为“钩子”。 应用场景 我们在完成某个功能这个功能需要执行一系列的步骤而且这一系列步骤基本相同只是某些步骤在具体实现上有所不同这个时候我们就可以考虑使用模板方法模式。 在代码中如果有多个子类共有的方法且逻辑相同的时候我们就可以使用模板方法模模式。 优缺点 优点 1、封装不变部分扩展可变部分。 2、提取公共代码便于维护。 3、行为由父类控制子类实现。 缺点 每一个不同的实现都需要一个子类来实现导致类的个数增加使得系统更加庞大。 实例 下面我们以一个执行数据库语句为例在数据库连接中我们执行一条语句的流程一般是固定的几步 1.获取连接 2.执行语句 3.关闭连接 抽象类 /*** 使用抽象类来定义模板方法和基本方法*/ public abstract class DatabaseTemplate {//模板方法final T T executeSql(String sql){T result;getConnection();//判断是否是查询语句非查询语句开启事务if (isSelect()){//执行语句result execute(sql);}else {//开启事务openTransaction();//执行语句result execute(sql);}closeConnection();return result;}//抽象方法让子类实现abstract T T execute(String sql);//具体方法获取连接void getConnection() {System.out.println(获取连接);}//具体方法关闭连接void closeConnection(){System.out.println(关闭连接);}//具体方法开启事务void openTransaction() {System.out.println(开启事务);}// 钩子方法决定是否需要事务boolean isSelect() {return true;}} 子类 /*** 查询语句*/ public class QueryTemplate extends DatabaseTemplate{OverrideString execute(String sql) {System.out.println(查询成功);return 成功;}}/*** 更新语句*/ public class UpdateTemplate extends DatabaseTemplate{OverrideInteger execute(String sql) {System.out.println(更新成功);return 1;}/*** 重写钩子方法添加事务* return*/Overrideboolean isSelect() {return false;}} 测试 public static void main(String[] args) {UpdateTemplate updateTemplate new UpdateTemplate();updateTemplate.executeSql(update table set column_name b); }输出获取连接 开启事务 更新成功 关闭连接
http://www.yutouwan.com/news/481676/

相关文章:

  • 微信官方网站公众平台手机端网站加盟
  • 爱做电影网站珠海网站制作软件
  • 金融网站建站河北建筑工程学院招生网官网
  • 南京网站建设网站制作 雷仁网络网站蓝色和红色搭配
  • html商业网站模板旅游网站建设分析
  • 企业级网站开发原理图旅游目的地网站建设的流程
  • 做百科的网站福田蒙派克e
  • 网站建设好的公司哪家好购物网站成品
  • 网站怎么才可以不备案铁盒 东莞网站建设
  • 在广州开发一个营销网站多少钱免费网站下载直播软件免费
  • 网站开发需要多少钱价格网站备案 拍照网点
  • 佳木斯网站设计高品质的网站开发公
  • 站长素材音效下载美团先做网站还是app
  • 网站制作动黄岐网站制作
  • 北京 科技网站建设郑州电力高等专科学校招生办电话
  • 软件下载网站排行榜前十名网站显示备案号
  • 合肥网站制作价格建设官方网站企业登录入口
  • 做网站交接需要哪些权限代做网页设计作业
  • 房地产网站建设平台WordPress文章模板修改
  • 百度站长平台链接漫画交流网站怎么做
  • 怎么样建设个人网站wordpress媒体库分类
  • 做业务不花钱的网站有哪些系统开发的大概步骤
  • 张家界商城网站建设wordpress删除角色名
  • 小程序和网站开发难度谷歌优化排名哪家强
  • 做网站各个流程深圳网站搭建哪里找
  • 免费网站下载大全海南最新消息
  • php网站后台登陆不了应用公园制作app教程视频
  • 西北人才网深圳市企业网站seo点击软件
  • 创新的中山网站建设快速搭建网站后台
  • 搭建网站做淘宝客网站开发与维护是干什么的