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

郑州网站开发网站开发网站开发导航栏

郑州网站开发网站开发,网站开发导航栏,wordpress支持php7,网站优化工具分析工具什么是模板方法模式 在一个方法中定义一个算法的骨架#xff0c;而把一些步骤延迟到子类。模板方法使得子类可以在不改变算法结构的情况下#xff0c;重新定义算法的某些步骤。 这些算法步骤中的一个或者多个被定义为抽象的#xff0c;由子类实现。 类图 代码 书中用泡茶和…什么是模板方法模式 在一个方法中定义一个算法的骨架而把一些步骤延迟到子类。模板方法使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤。 这些算法步骤中的一个或者多个被定义为抽象的由子类实现。 类图 代码 书中用泡茶和泡咖啡作为例子比较了他们的共同点与不同点从而做抽象。 泡咖啡的步骤 把水煮沸用沸水冲泡咖啡把咖啡倒进杯子加糖和奶 泡茶的步骤 把水煮沸用沸水浸泡茶叶把茶倒进杯子加柠檬 从上面可以看出泡咖啡和泡茶的基本流程是一样的而且其中把水煮沸的动作也是一样的 由上面的分析可以抽象出代码如下 顶层抽象类的设计 public abstract class Beverage {final void prepareRecipe() { //冲泡方法定义为final防止子类更改顺序boilWater();brew();pourInCup();if (customerWantsCondiments()) { //用钩子方法来做条件判断addCondiments();}}abstract void brew();abstract void addCondiments();void boilWater() {System.out.println(Boiling water);}void pourInCup() {System.out.println(pouring into cup);}boolean customerWantsConditions() { // 钩子函数return true; //默认是添加的子类可以覆盖这个方法} }Tea public class Tea extends Beverage {Overridevoid brew() {System.out.println(Steeping the tea);}Overridevoid addCondiments() {System.out.println(Adding Lemon);} }Coffee public class Cofffee extends Beverage {Overridevoid brew() {System.out.println(Coffee filter);}Overridevoid addCondiments() {System.out.println(adding sugar and milk);} }应用 java API中很多地方会用到模板方法的思想但使用形式不是完全跟书上类似 下面是一个Arrays.sort()的使用 鸭子类 public class Duck implements ComparableDuck{private String name;private int weight;public Duck(String name, int weight) {this.name name;this.weight weight;}Overridepublic String toString() {return name weight;}Overridepublic int compareTo(Duck other) {return Integer.compare(this.weight, other.weight);} 对鸭子进行排序 public class DuckStoreTest {public static void main(String[] args) {Duck[] ducks {new Duck(a, 5),new Duck(b, 9),new Duck(c, 3)};System.out.println(Before sort);display(ducks);Arrays.sort(ducks); System.out.println(After sort);Arrays.sort(ducks);display(ducks);}public static void display(Duck[] ducks) {for (Duck d : ducks) {System.out.println(d);}} } Arrays.sort()是一个静态方法这里用户类Duck实现了Comparable的方法但是并不是通过继承父类的方式类实现。 设计原则 好莱坞原则不要打电话给我们我们会打电话给你们。强调了是高层组件去调用低层组件低层子组件会参与计算但是不直接调用高层组件。 优点 模板方法定义了算法的步骤然后把这些步骤的实现延迟到了子类 提供了一种代码复用的重要技巧 工厂方法是模板方法的一个特例 策略模式和模板方法模式都是封装算法但是前者是通过组合而后者是通过继承。
http://www.pierceye.com/news/861654/

相关文章:

  • 展览馆网站建设方案书wordpress 搬家 sae
  • 网站建设服务开税率多少的票重庆公积金门户网站
  • 网站推广的策略有哪些免费创建个人网站申请
  • 网站建设合同制苏中建设集团网站
  • 如何用织梦程序制作多个页面网站免费域名解析网站建设
  • 安徽省建筑人员信息网广州百度seo优化排名
  • 北海网站建设培训机构专业
  • 江苏艺居建设有限公司网站企业营销网站开发建设专家
  • 莱芜网站优化排名西安工程建设工程信息网
  • 二手网站建设的策划php做网站都需要学什么软件
  • 作品集的个人网站怎么做抖音代运营怎么样呢
  • 电子商务网页设计与网站建设论文在线设计培训
  • 做旅游网站的项目背景软件开发手册
  • 宁波品牌网站设计app外包接活
  • 清远市住房和城乡建设局门户网站图片软件制作工具
  • 宝马itms做课网站网站开发群
  • 网站开发工作协议书范本谷歌优化软件
  • 什么网站都能进的浏览器企业融资方案
  • 网站建设公司领导致辞自己可以开发一个软件吗
  • 高端网站设计平台专门做二手书网站或app
  • 系网站建设工作总结大庆建设网站表格下载
  • 免费建站网站seo长春专业网站制作
  • 做网站公司哪家正规公司网站如何更改内容
  • 广州黄埔区建设局网站局wordpress怎么看访问量
  • 佛山找人做网站国家建设免费论文网站
  • 网站内容建设ppt网站建设header
  • 图书馆网站建设费用青海省住房建设厅网站
  • 重庆网站供奉战犯wordpress 关键字链接
  • 给个2021站你们懂得不花钱的深圳手机网站建设
  • 织梦图片自适应网站源码php企业网站源码推荐