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

怎么利用云盘建设网站外网设计灵感网站

怎么利用云盘建设网站,外网设计灵感网站,中国纪检监察报电子版下载,关于建网站做淘宝联盟文章目录 实现举例应用钩子 Hook 模板方法模式是一种基于继承的设计模式,由两部分构成: 抽象父类(一般封装了子类的算法框架)具体的实现子类 实现 简单地通过继承就可以实现 举例 足球赛 和 篮球赛 都有 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.yayakq.cn/news/721777/

相关文章:

  • 网站怎么做分时虚拟主机wordpress多站点
  • 找个做网站的浙江中联建设集团有限公司网站
  • 北京工商注册公司太原seo网站排名
  • 给个做的网站澄迈网站新闻建设
  • 服装公司网站建设开题报告网站建设如何敲图标代码
  • 做物流网站有哪些功能wordpress 4.9下载
  • 专门网站建设天津专业网站设计报价
  • 网站排版工具城乡建设厅建设网站
  • 网站建设管理教程营销型网站制作哪个好薇
  • 计算机上网题的模拟网站怎么做合肥建设管理学院网站
  • 做网站如何推广买量wordpress 4.5.3 下载
  • 做网站端口内容无法替换山东最新消息今天
  • 自考都到哪个网站找题做装饰公司简介
  • 免费手机网站百度认证服务平台
  • 采集数据做网站如何做品牌营销
  • 魔客吧是什麼程序做的网站淘客网站如何做
  • 坪山网站建设代理商wordpress怎么使用七牛云
  • 广州城乡建设部网站首页网站是否wordpress
  • 网站建设公司专业网站费用报价郑州无痛人流哪家医院好
  • jeecms可以做网站卖吗百度推广电话
  • 刷评论网站推广个人做网站要买什么域名
  • 手机网站404页面模板广州全屋定制
  • 怎样把网站打包做百度小程序做外包网站搭建
  • php网站开发实例项目wordpress+采集小说
  • 山东青岛68元建网站网站建设要花在哪些项目上
  • 中国网站开发的前景永康网站建设服务
  • 网站收录后然后怎么做做一个网站难不难
  • 两学一做网站是多少网站三大标签
  • 旅游网站建设技术有哪些内容天猫购买
  • 网站建设免费加盟代理网站建设微信官网开发