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

上海巨型网站建设wordpress 创建报错

上海巨型网站建设,wordpress 创建报错,自主网站,江西专业网站建设文章目录 实现举例应用钩子 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/559645/

相关文章:

  • 做外贸要自己建网站吗做个网站要多久
  • 网站里的动画效果上海市网站制作
  • 医疗网站制作企业网站 留言板
  • wordpress整站安装潍坊 logo设计公司
  • 益阳购物网站开发设计爱站网挖掘工具
  • 为网站做seo需要什么福州seo技巧培训
  • 福州建站开发视觉元素网站
  • 网站集约化建设推进情况最有前景的代理产品
  • 百度站长号购买wordpress模板修改字体
  • 网站建设公司格广西灵山县住房和城乡建设局网站
  • 齐齐哈尔网站开发中国建筑网官网app
  • 网站建设哪里找用canvas做网站
  • 专业的扬州网站建设湛江做网站的公司
  • 太原市建设局网站首页长白山网站学做管理
  • 直播网站开发多少钱2345浏览器网页版登录
  • 什么网站可以做产品入驻中山大沥网站制作
  • 网站设计收集拓者吧室内设计
  • ps做素材下载网站企业管理的五大核心
  • 商标设计网站提供哪些服务themeforest wordpress
  • 关键词推广价格seo发包技术
  • 网站建设与网页设计入门wordpress采集伪原创
  • 网站无法显示网页内容漳州市住房与城乡建设部网站
  • 青海餐饮网站建设界面设计流程
  • 开通公司网站网站内容与目录结构
  • 遵义做网站哪家好哪家好网站制作公司知道万维科技
  • 网站联盟公司怎么做网页
  • 通州建设局网站idc服务器租赁
  • 手机网站设计制作公司网站图片有什么要求
  • 做市场调查的网站免费网站改版的费用
  • 网站后缀cc天津网站建设案例教程