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

wordpress 通知中心关键词优化简易

wordpress 通知中心,关键词优化简易,php网站开发面向对象教程,怎么设计网络营销方案是什么? 在我们的实际开发中尝尝会遇到这种问题:在设计一个系统时知道了算法所需要的关键步骤,而且确定了这些步骤的执行顺序,但是某些步骤的具体实现还不知道,或者说某些步骤的实现与具体的环境相关,例如每…

是什么?

        在我们的实际开发中尝尝会遇到这种问题:在设计一个系统时知道了算法所需要的关键步骤,而且确定了这些步骤的执行顺序,但是某些步骤的具体实现还不知道,或者说某些步骤的实现与具体的环境相关,例如每个人订车,最开始的流程都是相同的:预约、到店、取号、排队、办理业务,这些流程对于每个客户都是相同的,但是办理业务这个流程对于每个客户都可能是不同的,比如有的客户是来订车,有的客户是来进行保养,而有的客户是来更换配饰;

        因此模板方法模式是定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤

结构

抽象类:负责给出一个算法的轮廓和骨架,它由一个模板方法和若干个基本方法构成;

  模板方法:定义了算法的骨架,按某种顺序调用其包含的基本方法;

  基本方法:是实现算法各个步骤的方法,是模板方法的组成部分,基本方法又可以分为以下三种:

        抽象方法:一个抽象方法由抽象类声明、由其具体子类实现;

        具体方法:一个具体方法由一个抽象类或具体类声明并实现,其子类可以进行覆盖也可以直接继承;

        钩子方法:在抽象类中已经实现,包括用于判断的逻辑方法和需要子类重写的空方法两种,一般钩子方法是用于判断的逻辑方法,这类方法名一般为isXxx,返回值为boolean类型;

具体子类:实现抽象类中所定义的抽象方法和钩子方法,它们是一个顶级逻辑的组成步骤;

实现

抽象类

public abstract class TemplateAbstractCar {/*** 模板方法模式中的抽象类* 已经实现的方法均为基本方法* *///预约服务public void book(){System.out.println("预约服务");};//到店服务public void arrival(){System.out.println("客户到店");};//取号public void takeNumber(){System.out.println("客户取号");};//排队服务public void line(){System.out.println("客户排队");}//客户具体操作protected abstract void buyCar();protected  boolean isBuyCar(){return false;};protected abstract void maintain();protected boolean isMaintain(){return false;};//空方法public void hook(){}public final void run(){//启动四个基本方法book();arrival();takeNumber();line();//根据子类是否实现了具体方法和钩子方法来判断是否启动if (isBuyCar()){buyCar();}if (isMaintain()){maintain();}hook();}
}

具体子类

public class Customer extends TemplateAbstractCar{@Overrideprotected void buyCar() {System.out.println("客户1买车服务完毕");}@Overrideprotected void maintain() {}@Overrideprotected boolean isBuyCar() {return true;}
}public class Customer2 extends TemplateAbstractCar{@Overrideprotected void buyCar() {}@Overrideprotected void maintain() {System.out.println("客户2保养服务完成");}@Overrideprotected boolean isMaintain() {return true;}@Overridepublic void hook() {System.out.println("客户二最后还回来买了一辆车");}
}

优缺点

   优点

1.提高代码的复用性,将相同部分的代码放在抽象的父类中,而将不同的代码放入不同的子类中;

2.实现了反向控制,通过一个父类调用其子类的操作,通过对子类的具体实现扩展不同的行为,实现了反向控制,并符合“开闭原则”;

   缺点

1.对每个不同的实现都需要定义一个子类,这会导致类的个数增加,系统更加庞大,设计也更加抽象;

2.父类中的抽象方法由子类实现,子类执行的结果会影响父类的结果,这导致一种反向的控制结构,它提高了代码阅读的难度;

使用场景

因此在当算法的整体步骤很固定,但其中个别部分容易变时,可以使用模板方法模式,将容易变的部分抽象出来,供子类实现,或者是需要通过子类来决定父类算法中的某个步骤是否执行以实现子类对父类的反向控制时也可以使用;

http://www.yayakq.cn/news/544493/

相关文章:

  • 自己建网站的费用廊坊关键词优化排名
  • 四川住房和城乡建设厅网站电话北京软件外包
  • 石家庄公司做网站个人网站建站
  • 做网站卖钱单位网站建设公司
  • 网站域名更改了怎么换注册个公司需要什么条件
  • 网站流量用完yellow免费观看高清
  • iis 网站制作咸阳市住房和城乡建设规划局网站
  • 科技网站小编网上做网站网站吗
  • 如何做公司网站简介商业网站建设与运营
  • 建设交通人才网站什么企业做网站比较方便呢
  • 学网站建设提供郑州网站建设
  • 建设银行短信开通网站网站开发人员周报
  • 简单aspx网站开发如何应用网络营销发挥作用
  • vs2010网站设计用整张图片做背景工商注销咨询电话
  • 网站怎么做pc端盒子公司名称变更网站要重新备案吗
  • 运营企业网站网站建设cms系统
  • 网站开发 jsp开发工具电子商城系统开发模块
  • 用软件做模板下载网站营销型网站建立费用
  • 怎么给网站做关键词hao123上网导航
  • 怎么在网站上做下载在线设计平台都有哪些比较好用的
  • 网站备案 年审在wordpress上添加播放视频播放器
  • 网站建设费用 无形资产教务管理系统可行性研究报告
  • 贵州建设考试网站上线了建站怎么收费
  • 小程序定制收费关键词优化快速
  • 学校网站管理长沙拓谋网络科技有限公司
  • 长尾关键词挖掘站长工具电影里的做视频在线观看网站
  • wordpress网站怎么仿柳州网站建设哪家公司好
  • 苏州新区网站制作公司wordpress免费企业站主题
  • 微分销商城网站建设个人网站建设的方案
  • 采购需求网站建设wordpress循环分类子分类与文章