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

济源市住房和城乡建设局网站教育培训机构加盟

济源市住房和城乡建设局网站,教育培训机构加盟,网站开发和大数据开发区别,html5网页设计论文模板方法模式 模板方法模式定义:使用场景角色定义抽象模板: 为抽象模板#xff0c;它的方法分为两类AbstractClass1. 基本方法: 也叫做基本操作#xff0c;是由子类实现的方法#xff0c;并且在模板方法被调用。2. 模板方法: 可以有一个或几个#xff0c;一般是一个具体方法… 模板方法模式 模板方法模式定义:使用场景角色定义抽象模板: 为抽象模板它的方法分为两类AbstractClass1. 基本方法: 也叫做基本操作是由子类实现的方法并且在模板方法被调用。2. 模板方法: 可以有一个或几个一般是一个具体方法也就是一个框架实现对基本方法的调度完成固定的逻辑3. 为了防止恶意操作一般模板方法都会加上 final 关键字不允许被覆写。 具体模板: 实现父类所定义的一个或多个抽象方法也就是父类定义的基本方法在子类中得以实现。 需求背景定义用户行为日志基类UserBehaviorLogger 定义用户登录行为子类LoginLogger 定义用户涉及现金交易子类CashTransactionLogger 定义用户领取活动优惠券子类CouponReceiveLogger 测试示例示例分析 模板方法模式定义: 定义一个操作中算法的框架将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 使用场景 多个子类有公有的方法并且逻辑基本相同时重要、复杂的算法可以把核心算法设计为模板方法周边的相关细节功能则由各个子类实现。重构时模板方法模式是一个经常使用的模式把相同的代码抽取到父类中约束其行为。 角色定义 抽象模板: 为抽象模板它的方法分为两类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);}示例分析 在这个示例中我们定义了一个抽象类 UserBehaviorLogger它有一个抽象方法 getLogFormat()用于获取当前用户行为类型对应的日志格式。具体的行为日志记录器如 LoginLogger、CashTransactionLogger 和 CouponReceiveLogger都继承自 UserBehaviorLogger 并实现了 getLogFormat() 方法用于返回对应的日志格式。在基类 log() 方法中我们根据当前用户行为类型获取对应的日志格式并使用 String.format() 方法格式化日志内容最终将日志保存到数据库中。使用时我们可以根据不同的用户行为类型创建对应的日志记录器并调用 log() 方法记录日志这样我们就可以根据不同的用户行为类型使用不同的日志格式进行记录了。同时由于使用了模板方法模式我们也将日志记录的具体实现细节下推到了子类中使得代码更加清晰和易于维护。
http://www.hkea.cn/news/14339506/

相关文章:

  • 公司做网站好不好网站五合一建设
  • 建立网站的主机方式工程建设项目管理办法实施细则
  • 个人网站建设图片素材做网站的又营业执照的吗
  • 咋做个人网站网站域名后缀
  • 做网站前端实战视频设计广告图用什么软件
  • 网站只做五周基本的网站建设步骤
  • 怎么建设h5网站网页设计与制作课程教学要求
  • 企业网站营销网站点击图片直接进入网站怎么做
  • 济南做网站多钱网络科技公司注册
  • 化工厂建设网站上百度首页
  • 生产企业网站如何做seo建一个网站式系统
  • 无锡上海网站建设如何给网页命名
  • 衡阳网站设计电商导购网站怎么做
  • vs手机网站开发怎样做网络推广外包
  • 怎么看网站是哪家公司做的c2c电商网站有哪些
  • 服装网站建设开发语言各大网站的域名是什么原因
  • 犀牛云做网站怎么做六安网站建设费用
  • 政务网站模版用自己服务器做网站
  • 构站网奉贤做网站
  • 建设部网站造价注册指定目录调用最新文章wordpress
  • 萝岗高端网站建设女的男的做那个视频网站
  • 做医疗类网站有什么需要审核的wordpress the7 下载
  • 企业网站建设基本流程图抖音代运营合作
  • 做框架模板的网站wordpress 使用七牛云
  • 深圳知名网站建设win8网站模版
  • 女装商城网站建设青岛微信网站建设
  • 公司做网站的优点优化大师
  • 建站网站 国外建设银行 福建分行招聘网站
  • 旅游网站的目的石家庄建设工程信息网
  • 环保网站建设网站源码44444kt