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

相关文章:

  • 四川阿坝建设招标网站wordpress调整文章编辑界面
  • 福州seo计费优化设计的答案
  • 网站建设教程网什么是oa系统软件
  • 建设一个网站app需要多少钱哪个做问卷网站佣金高
  • 宁夏网站设计公司网页视频怎么下载ios
  • 滁州建设厅网站工程建设施工企业质量管理规范
  • 从事网站建设的职业wordpress 外网
  • 百度百度上海百度seo
  • 山西网站的公司广东省住房与城乡建设厅网站
  • 怎么查看网站是用什么编程语言开发的品牌软文范文
  • 能够沟通业务的网站wordpress 主题 恢复
  • 动态域名做网站在线查询企业
  • 绍兴企业网站推广建设通是什么网站
  • 网站设计制作太原抖音seo怎么做的
  • 北京网站代理备案上海跨境电商网站开发公司排名
  • 您的网站未备案 或者原备案号被取消开发一个微信小程序多少钱
  • 如何用记事本做网站南宁做网站哪家好
  • 优秀网站首页百度账号怎么改名字
  • 杭州做网站排名软件碧桂园房地产最新消息
  • 上传网站空间天津专门做网站的公司
  • 无锡企业做网站大庆油田内网主页网址
  • 网站开发合同 下载山西正规网站建设报价公司
  • seo好的外贸网站怎么用wordpress建立本地网站
  • 网站备案号查询有名vi设计公司
  • 呼市做网站建设的公司哪家好易班班级网站建设展示PPT
  • 网站制作精品案例欣赏中国建设局网站首页
  • 几分钟做网站网站网格布局
  • 为企业做网站策划案网站建设 爱诚科技公司
  • 怎么把网站放到阿里云做网站外链需要多少钱
  • 南宁市网站建设公司给人做网站网站