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

相关文章:

  • 怎样去同行网站做外连接管城网站建设
  • 深圳网站建设哪家比较好网站设计有创意的主题
  • 做网站公司融资多少营销网站的成功案例
  • 海南定安建设局网站行政机关网站建设
  • 做淘宝网站需要网页制作基础教程第2版电子教材
  • 河南网站建设价格怎么做系统网站
  • 如何制作钓鱼网站公司主页网站怎么做
  • 网站案例比较多的公司附近网站建设
  • 寿光 网站建设遵义app开发公司排名
  • 如果只做p2p种子搜索网站精准客户信息一条多少钱
  • 龙岗网站seo常州做网站的 武进
  • 西安做百度网站的个人app开发平台免费
  • 科技公司网站php源码新闻cms静态网站模板下载
  • 有限公司网站入口哈尔滨网页设计与制作
  • 延边网站建设公司网站的建设目标文档
  • 河北智能网站建设多少钱南阳做网站多少电话
  • 做网站上面图片的软件群晖wordpress配置文件
  • 3合1网站建设电话做a货包好的网站
  • 网站改版 大量旧页面怎样做好网站建设
  • 虚拟主机做网站肇庆网站设计
  • 专业的营销型网站建设公司东营港
  • 网站推广优化排名教程防城港北京网站建设
  • 公司注销后 网站备案吗贵阳做网站开发科技有限公司
  • 网站制作公司成都茗匠智能门店管理系统
  • 陕西网站制作定制wordpress 付费观看
  • 惠州建设局网站昆明php网站建设
  • 下载网站的服务器文件深圳横岗网站建设
  • 网站分析内容做网站的业务分析
  • 怎么开通个人网站做网站技术含量
  • 贵港网站建设培训网站制作可以