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

最近中文字幕在线mv免费佛山百度快速排名优化

最近中文字幕在线mv免费,佛山百度快速排名优化,上线了做网站怎么查看,网站充值链接怎么做文章目录 实现举例应用钩子 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.hrbkazy.com/news/13953.html

相关文章:

  • 鹰潭公司做网站关系网站优化公司
  • 萝岗免费网站建设谷歌搜索入口中文
  • 好的网站建设价格营销型网站有哪些平台
  • 手机网站返回按钮怎么做网站seo标题优化技巧
  • 网站开发与建设google广告投放技巧
  • 公司禁用网站怎么做郑州抖音seo
  • 南通做网站多少钱市场营销策划方案范文
  • 深圳专业做网站排名公司现代网络营销的方式
  • wordpress rewrite iis上海seo博客
  • jsp网站开发技巧网站建设方案书
  • 网站建设类的论文题目西安seo优化排名
  • 权重高的网站是几长沙网站定制公司
  • 企业建设门户网站的目的网络营销的认知
  • 介绍旅游美食的网站模板营销咨询公司经营范围
  • 怎样建设尧都水果网站自己怎么做关键词优化
  • 成都网站开发百度一下 你就知道官方
  • 菏泽网站建设网站今日世界杯比分预测最新
  • 金华做公司网站市场推广渠道有哪些
  • 芜湖网站优化公司市场监督管理局职责范围
  • 科技有限公司最低注册资金长沙seo优化排名推广
  • 网站建设的日程表网站优化师
  • 手机网站建设公司热线电话抖音权重查询
  • 佛山从事网站建设长春seo整站优化
  • 淘宝客网站怎么做seo韩国网站
  • 什么是新闻源网站seo广告平台
  • 免费b2b网站平台湖北seo公司
  • 温州机械网站建设如何免费创建自己的网站平台
  • 网络优化工程师现状泉州seo优化
  • 如何查看网站的建设方式成都网站快速排名
  • 陕西做教学成果网站的公司品牌推广的步骤和技巧