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

东莞齐诺做网站做网页设计的软件

东莞齐诺做网站,做网页设计的软件,seo优化排名平台,中华建筑网校模板方法模式 编写制作豆浆的程序,说明如下 1)制作豆浆的流程选材添加配料浸泡放到豆浆机打碎 2)通过添加不同的配料,可以制作出不同口味的豆浆 3)选材、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的 4)请使用模板方法模式完成 说明…

模板方法模式

  • 编写制作豆浆的程序,说明如下
    1)制作豆浆的流程选材添加配料浸泡放到豆浆机打碎
    2)通过添加不同的配料,可以制作出不同口味的豆浆
    3)选材、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的
    4)请使用模板方法模式完成 说明: 因为模板方法模式,比较简单, 很容易就想到这个方案 ,因此就直接使用,不再使用传统的方案来引出模板方法模式

原理图
在这里插入图片描述

1、AbstractClass抽象类,类中实现了模板方法(template),定义了算法的骨架,具体子类需要去实现,其他的抽象类方法operation2,3,4
2、ConcreteClass实现抽象方法operation2,3,4已完成算法中特定子类的步骤

@Slf4j
public abstract class SoyaMilk {//模板方法 make 模板方法可以做成final,不让子类去覆盖final void make() {select();addCondiments();soak();beat();}//选择材料void select() {log.info("第一步:选择好的新鲜黄豆");}//添加不同的配料,抽象方法,子类具体实现。abstract void addCondiments();//浸泡void soak() {log.info("第三步:黄豆和配料开始浸泡,需要3小时");}//打浆void beat() {log.info("第四步:黄豆和配料放到豆浆机中去打碎。");}
}
@Slf4j
public class PeanutSoyaMilk extends  SoyaMilk{@Overridevoid addCondiments() {log.info("第二步:加入花生");}
}
@Slf4j
public class RedBeanSoyaMilk extends  SoyaMilk{@Overridevoid addCondiments() {log.info("第二步:加入红豆");}
}
@Slf4j
public class Client {public static void main(String[] args) {log.info("------制作红豆豆浆------");RedBeanSoyaMilk redBeanSoyaMilk = new RedBeanSoyaMilk();redBeanSoyaMilk.make();log.info("=====================================");log.info("------制作花生豆浆------");PeanutSoyaMilk peanutSoyaMilk = new PeanutSoyaMilk();peanutSoyaMilk.make();}
}
------制作红豆豆浆------
- 第一步:选择好的新鲜黄豆
- 第二步:加入红豆
- 第三步:黄豆和配料开始浸泡,需要3小时
- 第四步:黄豆和配料放到豆浆机中去打碎。
=====================================
------制作花生豆浆------
- 第一步:选择好的新鲜黄豆
- 第二步:加入花生
- 第三步:黄豆和配料开始浸泡,需要3小时
- 第四步:黄豆和配料放到豆浆机中去打碎。

钩子方法

在模板方法模式的父类中,我们可以定义一个方法,不做任何事,子类可以去视为情况要不要覆盖它,称之为钩子程序。

@Slf4j
public abstract class SoyaMilk {//模板方法 make 模板方法可以做成final,不让子类去覆盖final void make() {select();if (customerWantCondiments()) {addCondiments();}soak();beat();}//......//钩子方法,决定是否需要添加配料boolean customerWantCondiments() {return true;}
}
@Slf4j
public class PureSoyaMilk extends SoyaMilk {@Overridevoid addCondiments() {//空实现}@Overrideboolean customerWantCondiments() {return false;}
}
@Slf4j
public class Client {public static void main(String[] args) {log.info("=====================================");log.info("------制作纯豆浆------");SoyaMilk pureSoyaMilk = new PureSoyaMilk();pureSoyaMilk.make();}
}
=====================================
------制作纯豆浆------
- 第一步:选择好的新鲜黄豆
- 第三步:黄豆和配料开始浸泡,需要3小时
- 第四步:黄豆和配料放到豆浆机中去打碎。
  • 模板方法在源码中的应用(spring IOC源码分析)
    在这里插入图片描述
    在这里插入图片描述

模板方法的注意事项和细节

1、基本的思想是:算法只存在于一个地方,也就是在父类中容易修改。,
需要修改算法时,只要修改父类的模板方法或者已经实现的某些步骤,子类就会继承这些修改。
2、实现了最大化代码复用,父类的模板方法和已经实现的某些步骤被直接的继承而直接使用。
3、即同意了算法,也提供了很大的灵活性。父类的模板方法确保了算法的结构保持不变,同时有子类提供部分步骤的实现。
4、该模式的不足之处:每一个不同的实现都需要一个子类实现,刀之类的个数增加,是的系统更加庞大。
5、一般末班方法都加上final关键字。发囊之子类重写模板方法。
6、模板方法模式使用场景。当要完成某个过程,该过程要执行一系列步骤,这一系列的步骤基本相同
但是个别步骤在实现时有可能不同,通常考虑用模板方法模式来处理。

http://www.dtcms.com/wzjs/362151.html

相关文章:

  • 公司企业网站设计尺寸恶意点击推广神器
  • 温州网站建设设计公司百分百营销软件官网
  • 投资建设集团网站西安自动seo
  • 网站建设论文摘要青岛seo搜索优化
  • 湖南省人民政府官方网合肥seo推广培训班
  • 做一个网站西安网站seo推广
  • 新疆和田住房和城乡建设网站百度推广400电话
  • 安徽网页设计培训seog
  • 武汉建站模板汕头网站建设优化
  • 个人域名网站可以做企业站吗百度一下你就知道移动首页
  • 网站建设及优化重要性百度关键词搜索量统计
  • 蓝色色调网站企业网络规划与设计
  • 建站宝盒免费下载百度关键词多少钱一个月
  • 注册网络公司起什么名字深圳关键词优化报价
  • 网站公告左右滚动公众号开发网站公司
  • 加强门户网站建设的通知百度推广助手电脑版
  • 手机能做网站吗网站制作需要多少钱
  • 利用access做网站男生技能培训班有哪些
  • 百度做自己的网站汽车营销策划方案ppt
  • 一个公司网站的价格网站如何做优化排名
  • 做网站网页多少钱北京seo排名外包
  • 网站建设捌金手指下拉一太原seo哪家好
  • 最强的网站建设电话百度账号中心
  • 货物公司网站建设方案海南百度推广公司电话
  • app与网站数据交互百度置顶广告多少钱
  • 做网站怎么让字居右怎么注册自己的网址
  • 网站推广软件预期效果全国新闻媒体发稿平台
  • 做网站便宜的公司百度搜索引擎推广步骤
  • 男女直接做网站seo自媒体运营技巧
  • 济南莱芜金点子信息港长春seo推广