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

公司做网站提供产品加盟费设计培训学院

公司做网站提供产品加盟费,设计培训学院,太原疫情第二波最新消息,论文 政府网站建设目录 一,模板模式 二,特点 三,组成部分 四,实现步骤 五,案例 一,模板模式 模板模式(Template Pattern)是一种行为型设计模式,它在超类中定义了一个算法的骨架&#…

目录

一,模板模式

二,特点

三,组成部分

四,实现步骤

五,案例


一,模板模式

模板模式(Template Pattern)是一种行为型设计模式,它在超类中定义了一个算法的骨架,将一些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些特定步骤。

二,特点

  1. 算法骨架:在超类中定义了算法的骨架,即算法的整体步骤。

  2. 钩子(Hooks):在模板方法中定义的一些方法,它们在超类中不做具体实现,而是在子类中根据需要重写。

  3. 抽象操作:在模板方法中定义的一些抽象方法,它们在子类中必须被实现。

  4. 具体操作:在模板方法中定义的一些具体方法,它们在超类中已经实现,也可以在子类中被覆盖。

  5. 扩展性:模板模式通过在子类中覆盖钩子和抽象操作,可以很容易地扩展新的功能。

三,组成部分

  • AbstractClass:定义了模板方法和一些抽象操作,以及一个或多个钩子方法。
  • ConcreteClass:继承自AbstractClass,实现模板方法中的抽象操作,也可以覆盖钩子方法。

四,实现步骤

  1. 定义一个抽象类AbstractClass,其中包含模板方法和其他一些操作。
  2. AbstractClass中实现模板方法,调用所有必要的操作。
  3. 定义一个或多个具体操作,这些操作在抽象类中是抽象的,需要在子类中实现。
  4. 定义钩子方法,它们在模板方法中被调用,但在抽象类中不做具体实现。
  5. 创建一个或多个继承自AbstractClass的子类,实现抽象操作,并根据需要覆盖钩子方法。

五,案例

abstract class CafeMaker {public final void makeCoffee(){//模板方法 定义了制作咖啡的步骤putWaterInMachine();putCoffeeBeansInMachine();cook();pourInCup();}protected void cook(){//钩子方法System.out.println("使用机器烹制");}protected abstract void putWaterInMachine();//定义抽象方法protected abstract void putCoffeeBeansInMachine();//定义抽象方法private void pourInCup() {//具体方法System.out.println("将咖啡倒入杯子里");}
}
class EspressoMaker extends CafeMaker{@Overrideprotected void putWaterInMachine() {System.out.println("加入热水");}@Overrideprotected void putCoffeeBeansInMachine() {System.out.println("加入咖啡豆");}
}
class Client {public static void main(String[] args) {CafeMaker maker = new EspressoMaker();maker.makeCoffee();}
}

在这个例子中,CafeMaker 是一个抽象类,它定义了制作咖啡的算法骨架(模板方法 makeCoffee()),同时定义了两个抽象方法 putWaterInMachine()putCoffeeBeansInMachine(),这些方法由具体子类实现。此外,它还包含一个钩子方法 烹制() 和一个具体方法 pourInCup()

EspressoMakerCafeMaker 的具体实现,它继承自 CafeMaker 并提供了 putWaterInMachine()putCoffeeBeansInMachine() 方法的实现。

客户端代码通过创建 EspressoMaker 的实例,并调用 makeCoffee() 方法来制作咖啡。

这个模板模式的例子展示了如何通过定义算法的骨架和推迟某些步骤到子类中实现,来达到代码复用和扩展性的目的。

http://www.mmbaike.com/news/70143.html

相关文章:

  • 织梦网站栏目谷歌推广一年多少钱
  • 房地产做网站网络营销研究背景及意义
  • 网站优化方法页面中超最新积分榜
  • 做网站图片属性志鸿优化设计电子版
  • 风中有朵雨做的云在线网站百度如何快速收录
  • 做a的视频在线观看网站四川seo多少钱
  • html5 公司网站手游cpa推广平台
  • 网站域名要钱吗一份完整的品牌策划方案
  • 合肥网站模板建站宁波网站推广代运营
  • win2003 网站服务器网络推广团队
  • 怎么接网站来做网络广告类型
  • 超越时空网上书城网站建设方案整站优化案例
  • 网站制作工资公众号代运营
  • 物流公司网站建设方案关键词seo排名怎么选
  • 做跨境网站注意电商网站定制开发
  • 二手交易网站建设方案pptcrm客户管理系统
  • 做lol直播网站太原网站seo
  • wordpress开通邮箱搜索引擎优化的缺点包括
  • 网站怎么做二级域名高端网站建设公司哪家好
  • 怎么做自己的cms导购网站外链免费发布平台
  • 旅游网站的建设开题报告重庆网站seo公司
  • 做微信公众号网站今日刚刚发生的国际新闻
  • 邢台无忧网站建设公司seo网站推广首页排名
  • 做网站国外网站张雪峰谈广告学专业
  • 塘厦企业网站推广公司汕头seo排名公司
  • 品牌手机网站开发哪家好深圳平台推广
  • 秦皇岛建设网站公司今日头条关键词排名优化
  • 充值网站 模板百度保障客服电话
  • 成都关键词优化东莞关键字排名优化
  • 手机如何做微商城网站中国万网域名注册官网