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

网站建设技能培训网页模板免费下载html

网站建设技能培训,网页模板免费下载html,滑县网站建设哪家专业,推荐10个优秀的国外ui设计网站文章目录 实现举例应用钩子 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/979317/

相关文章:

  • 宜昌网站企业做网站的流程是怎么样的
  • 重庆王网站制作网站建设终稿确认书
  • 网站建设基础知识微软的网页制作软件
  • 做瑞士网站cnnic网站备案
  • 网站建设创新广州番禺区酒店
  • 做变形字的网站四川兴昌建设有限公司网站
  • 建筑公司网站常用长尾词中国万网域名注册流程
  • 做培训的网站建设织梦文章title怎么显示网站title
  • 宁波做外贸网站建设网站怎么设计好看的图片
  • 杭州 建设网站制作深圳做网站推广公司哪家好
  • 上海建站模板平台php视频网站开发
  • 电商网站 厦门设计一个学院网站
  • 地方门户网站推广方案网站的线下推广怎么做
  • 大连六兄弟网站建设聊城手机站网站公司电话号码
  • 宽屏网站和普通网站外贸公司销售渠道
  • 企业网站系统设计论文批量外链工具
  • 怎么做网站空间wordpress 伪静态 页面
  • wordpress 扒站上海seo网站
  • html导航网站源码网站开发 评价
  • 网站建设有没有做的必要怎么自己创建网站免费
  • 效果好的魔站建站系统seo网站优化培训公司
  • qq群推广网站免费秒进天津网站建设设计费用
  • 东莞网站建设 手机壳哈尔滨营销型网站建设
  • 专业的医疗行业网站模板自动运行wordpress
  • 建设银行北京分行网站深圳报业集团官网
  • 水利建设经济定额站网站北京十大企业公司排名
  • 中山哪里有做网站阳江网络问政平台 周报
  • wordpress站外链接页面鹤壁建设网站推广公司
  • 开一家网络公司做网站前景如何网页动态设计软件
  • 电商论坛网站模板全网vip视频网站怎么做