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

黄骅市住房和城乡建设局网站h5企业网站模板 下载

黄骅市住房和城乡建设局网站,h5企业网站模板 下载,大数据毕业后去什么岗位就业,企业建站做网站模板方法模式 模板方法模式定义:使用场景角色定义抽象模板: 为抽象模板,它的方法分为两类AbstractClass1. 基本方法: 也叫做基本操作,是由子类实现的方法,并且在模板方法被调用。2. 模板方法: 可以有一个或几个,一般是一个具体方法…

模板方法模式

  • 模板方法模式定义:
    • 使用场景
    • 角色定义
      • 抽象模板: 为抽象模板,它的方法分为两类AbstractClass
        • 1. 基本方法: 也叫做基本操作,是由子类实现的方法,并且在模板方法被调用。
        • 2. 模板方法: 可以有一个或几个,一般是一个具体方法,也就是一个框架,实现对基本方法的调度,完成固定的逻辑
        • 3. 为了防止恶意操作,一般模板方法都会加上 final 关键字,不允许被覆写。
      • 具体模板: 实现父类所定义的一个或多个抽象方法,也就是父类定义的基本方法在子类中得以实现。
    • 需求背景
      • 定义用户行为日志基类(UserBehaviorLogger )
      • 定义用户登录行为子类(LoginLogger )
      • 定义用户涉及现金交易子类(CashTransactionLogger )
      • 定义用户领取活动优惠券子类(CouponReceiveLogger )
      • 测试示例
      • 示例分析

模板方法模式定义:

定义一个操作中算法的框架,将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤

使用场景

  1. 多个子类有公有的方法,并且逻辑基本相同时
  2. 重要、复杂的算法,可以把核心算法设计为模板方法,周边的相关细节功能则由各个子类实现。
  3. 重构时,模板方法模式是一个经常使用的模式,把相同的代码抽取到父类中,约束其行为。

角色定义

抽象模板: 为抽象模板,它的方法分为两类AbstractClass

1. 基本方法: 也叫做基本操作,是由子类实现的方法,并且在模板方法被调用。

2. 模板方法: 可以有一个或几个,一般是一个具体方法,也就是一个框架,实现对基本方法的调度,完成固定的逻辑

3. 为了防止恶意操作,一般模板方法都会加上 final 关键字,不允许被覆写。

具体模板: 实现父类所定义的一个或多个抽象方法,也就是父类定义的基本方法在子类中得以实现。

需求背景

使用模板方法模式,实现在项目当中用户的不同行为日志处理,比如用户登录、现金交易、领取活动优惠券、注意不同用户行为日志格式不一样需要下推到子类实现记录到数据库。

定义用户行为日志基类(UserBehaviorLogger )

public abstract class UserBehaviorLogger {protected abstract String getLogFormat();public void log(String userId, String behavior) {String log = String.format(getLogFormat(), userId, behavior);saveLogToDatabase(log);}private void saveLogToDatabase(String log) {// 将日志保存到数据库中// ...}
}

定义用户登录行为子类(LoginLogger )

public class LoginLogger extends UserBehaviorLogger {@Overrideprotected String getLogFormat() {return "User %s logged in at %s";}
}

定义用户涉及现金交易子类(CashTransactionLogger )

public class CashTransactionLogger extends UserBehaviorLogger {@Overrideprotected String getLogFormat() {return "User %s made a cash transaction at %s";}
}

定义用户领取活动优惠券子类(CouponReceiveLogger )

public class CouponReceiveLogger extends UserBehaviorLogger {@Overrideprotected String getLogFormat() {return "User %s received a coupon at %s";}
}

测试示例

    public static void main(String[] args) {UserBehaviorLogger logger = new LoginLogger();logger.log("123456", "2022-01-01 10:00:00");logger = new CashTransactionLogger();logger.log("123456", "2022-01-01 11:00:00");logger = new CouponReceiveLogger();logger.log("123456", "2022-01-01 12:00:00");}

示例分析

  1. 在这个示例中,我们定义了一个抽象类 UserBehaviorLogger,它有一个抽象方法 getLogFormat(),用于获取当前用户行为类型对应的日志格式。
  2. 具体的行为日志记录器,如 LoginLogger、CashTransactionLogger 和 CouponReceiveLogger,都继承自 UserBehaviorLogger 并实现了 getLogFormat() 方法,用于返回对应的日志格式。
  3. 在基类 log() 方法中,我们根据当前用户行为类型获取对应的日志格式,并使用 String.format() 方法格式化日志内容,最终将日志保存到数据库中。
  4. 使用时,我们可以根据不同的用户行为类型创建对应的日志记录器,并调用 log() 方法记录日志
  5. 这样,我们就可以根据不同的用户行为类型使用不同的日志格式进行记录了。同时,由于使用了模板方法模式,我们也将日志记录的具体实现细节下推到了子类中,使得代码更加清晰和易于维护。
http://www.yayakq.cn/news/225535/

相关文章:

  • 巴零网站建设个人网站备案麻烦吗
  • 哈尔滨网站运营服务商用excel做网站
  • 免费ppt资源网站卓商网站建设公司
  • 中华建设网算什么级别网站wordpress 制作widget
  • 苏州做物流网站电话电商无货源怎么做
  • 吴桥县做网站衡阳网站设计ss0734
  • 网站项目开发的流程遵义花果园网站建设
  • 网站建设是怎么挣钱无锡网站设计厂家
  • 保定手机网站小程序制作价格北京华网天下实惠
  • 有什么好看的网站资源设计展厅的公司
  • 怎样做网站轮播网站一般怎么维护
  • 宠物商品销售网站开发背景网站建设合同以及服务条款
  • 怎样帮人做网站挣钱定制开发软件开发
  • WordPress建站布置知名设计公司logo
  • 网站建设要会什么软件图片制作在线制作免费
  • 网站建设开票项目是什么怎么网络推广自己业务
  • 广州市营销型网站建设可以做logo设计单子的网站
  • 智能自助建站系统源码怎么制作php网站
  • 怎么查询网站的域名哪个行业最喜欢做网站
  • 网站标题怎么隔开开发门户网站报价
  • 海口智能建站价格wordpress wp-postviews
  • 织梦网站首页自动更新飘雪影视大全免费观看视频
  • 网站建设与网页制作基础入门教程网站建设需要什么基础
  • 网站设计中的事件是什么网站后台工程师
  • 济南网站建设行知keji电子商城官网
  • 做一个推广网站多少钱软件开发报什么专业
  • 大渡口集团网站建设重庆建设工程招标投标交易信息网
  • 小女孩做网站北京市建设厅门户网站
  • 医院网站设计模板wordpress多媒体路径
  • 去哪个网站可以做写手昆明网站建设电话