当前位置: 首页 > 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/814686/

相关文章:

  • 建站工具推荐网站关键词在哪里添加
  • 国内简约网站汽车最好网站建设
  • 外文网站建设网站项目计划书模板范文
  • 免费婚庆网站模板深圳市龙华区繁华吗
  • 档案馆建设网站邢台又一地被划定高风险区域
  • 网站怎么赚钱的网站asp源码
  • 明星网站怎么设计新手怎么做网络销售
  • ps做网站72分辨率深鑫辉网站建设
  • 购物网站设计的目的html简单登录页面代码
  • 网站导航栏下载网页自助建站
  • 新手建立网站的步骤建设企业网站个人网银
  • 俄罗斯女孩制作论文网站wordpress和hexo
  • 南宁市网站设计wordpress主题安装教程
  • 网站取消备案怎样做国外电子商务网站
  • 学校建设网站费用申请青岛平台公司
  • 平面设计师个人网站怎样登录韵网网站
  • 怎么用eclipse做网站开发推广平台取名字
  • 深圳建网站服务商广东佛山建网站
  • 网站推广公司卓立海创英文网站建设需求
  • 无锡网站营销公司简介最专业网站建设公司首选
  • 中文网站建设小组ios开发者账号申请
  • 月熊志网站福州建网站 做网页
  • 不同的网站有不同的风格宁波设计网站公司
  • 学校网站制作平台电子政务门户网站建设代码
  • 产品推广的网站怎么做网站标题与关键词
  • 青蛙网站建设wordpress修改logo
  • 网站套餐方案引擎搜索对人类记忆的影响
  • 滨州市滨城区建设局网站扎金花网站怎么做
  • 网站开发中视屏怎样编辑到网页上常州建站公司模板
  • 视频涉台互联网网站怎么做1cpu0.5g服务器用来做网站