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

各大网站收录入口建设工程消防信息网站

各大网站收录入口,建设工程消防信息网站,wordpress还原数据库备份,网站挂百度广告文章目录 实现举例应用钩子 Hook 模板方法模式是一种基于继承的设计模式#xff0c;由两部分构成#xff1a; 抽象父类#xff08;一般封装了子类的算法框架#xff09;具体的实现子类 实现 简单地通过继承就可以实现 举例 足球赛 和 篮球赛 都有 3 个步骤#xff0c… 文章目录 实现举例应用钩子 Hook 模板方法模式是一种基于继承的设计模式由两部分构成 抽象父类一般封装了子类的算法框架具体的实现子类 实现 简单地通过继承就可以实现 举例 足球赛 和 篮球赛 都有 3 个步骤初始化开始游戏结束游戏 我们发现他们都有这个过程就可以把相同的点提取出来设置成一个模板 这里我们举例的 3 个方法都是抽象方法有时如果子类的行为是一致的可以直接实现具体方法 using System;public abstract class Game {public void Play(){Initialize();StartGame();EndGame();}protected abstract void Initialize();protected abstract void StartGame();protected abstract void EndGame(); }public class FootballGame : Game {protected override void Initialize(){Console.WriteLine(Football game initialized. Setting up teams and players.);}protected override void StartGame(){Console.WriteLine(Football game started. Kickoff!);}protected override void EndGame(){Console.WriteLine(Football game ended. Final score and statistics displayed.);} }public class BasketballGame : Game {protected override void Initialize(){Console.WriteLine(Basketball game initialized. Setting up teams and players.);}protected override void StartGame(){Console.WriteLine(Basketball game started. Tip-off!);}protected override void EndGame(){Console.WriteLine(Basketball game ended. Final score and statistics displayed.);} }public class Program {public static void Main(string[] args){Game footballGame new FootballGame();footballGame.Play();Console.WriteLine();Game basketballGame new BasketballGame();basketballGame.Play();} }应用 常被架构师用来搭建项目的框架程序员负责往里面填空 比如 Java 程序员经常用 HttpServlet 来开发项目他包含 7 个生命周期每个生命周期都对应一个 do 方法这些方法就需要 HttpServlet 的子类进行 具体实现 钩子 Hook 根据上面的例子如果有一种非常特别的球赛不需要 Initialize 就可以开始呢 我们可以在容易变化的方法处设置一个 Hook他可以有一个默认的实现需不需要 Hook 挂钩则由子类自行决定这样程序就有了变化的可能 using System;public abstract class Game {public void Play(){Initialize();StartGame();EndGame();}protected virtual void Initialize(){Console.WriteLine(Game initialized. Setting up teams and players.);// 在这里添加挂钩Hook行为AdditionalInitialization();}protected abstract void StartGame();protected abstract void EndGame();protected virtual void AdditionalInitialization(){// 默认的挂钩行为为空} }public class FootballGame : Game {protected override void StartGame(){Console.WriteLine(Football game started. Kickoff!);}protected override void EndGame(){Console.WriteLine(Football game ended. Final score and statistics displayed.);}protected override void AdditionalInitialization(){Console.WriteLine(Additional initialization for Football game.);} }public class BasketballGame : Game {protected override void StartGame(){Console.WriteLine(Basketball game started. Tip-off!);}protected override void EndGame(){Console.WriteLine(Basketball game ended. Final score and statistics displayed.);}protected override void AdditionalInitialization(){Console.WriteLine(Additional initialization for Basketball game.);} }public class Program {public static void Main(string[] args){Game footballGame new FootballGame();footballGame.Play();Console.WriteLine();Game basketballGame new BasketballGame();basketballGame.Play();} }
http://www.zqtcl.cn/news/476346/

相关文章:

  • 手机网站模板用什么做高端展馆展厅设计方案
  • 长春企业网站seo国土网站建设自查报告
  • 建设电动车官方网站设立深圳公司
  • 蓝奏云注册网站工程设计方案主要内容
  • 建设官方网站企业网站公司可以做网站
  • 网站销售流程中装建设集团官网
  • 动易网站无法安装网站开发广告
  • 做网站类型注册域名com和cn
  • 织梦 做网站 知乎系统优化软件推荐
  • 长沙网站制作哪家强网站后台是怎么做的
  • Linux网站开发设计做ppt网站动态
  • 西部中大建设集团网站微商代理网
  • 做网站的参考文献有哪些火车头采集 wordpress
  • 网站不备案会有什么影响最新企业名录搜索软件
  • 邯郸做网站公司哪家好优化设计四年级下册数学答案
  • wordpress企业建站模版wordpress门户网站模板
  • 网站建设时间及简介企业注册代理
  • 网站首页制作方案wordpress中常用插件安装包
  • 阿里云建立网站赤坎网站建设公司
  • 时光轴 网站小公司做网站赚钱吗
  • 手机管理网站模板乐山住房和城乡建设厅网站
  • wordpress链接样式设置方法网络seo推广培训
  • 建站系统wordpress下载企业网站建设课程体会
  • 网站资源规划怎么写wordpress怎么解绑域名
  • 建湖企业做网站多少钱网页开发工具软件
  • WordPress怎么建小站wordpress替换谷歌字体库
  • ps建设网站步骤佛山做外贸网站特色
  • 杭州做代发的网站有哪些计算机基础网站建设和网络安全
  • 做汽配外贸是在哪个网站做山东百度推广
  • 网站类型大全cms监控软件下载官网