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

河北省建设资格执业中心网站网页策划书

河北省建设资格执业中心网站,网页策划书,58同城百姓网,网络营销课程ppt模式结构图 说明 基本方法是模板方法的组成部分。基本方法分为一下三种#xff1a; 抽象方法 由抽象类声明#xff0c;由其具体子类实现。C中就是纯虚函数。 具体方法 由抽象类或具体类声明并实现#xff0c;子类可以进行覆盖也可以继承。C中是虚函数。 钩子方法 由抽象类…模式结构图 说明 基本方法是模板方法的组成部分。基本方法分为一下三种 抽象方法 由抽象类声明由其具体子类实现。C中就是纯虚函数。 具体方法 由抽象类或具体类声明并实现子类可以进行覆盖也可以继承。C中是虚函数。 钩子方法 由抽象类或具体类声明并实现子类可能会加以扩展。 其中钩子方法比较特殊通常在父类给出的实现是一个空实现并以该实现作为方法的默认实现。当然默认实现也可以是非空。 模板方法模式中钩子方法分为两类。 第一类钩子方法可以与一些具体步骤“挂钩”以确定在不同条件下执行模板方法中的不同步骤这类钩子方法的返回值通常是boolean类型的这类方法一般为isXXX()用于对某个条件进行判断如果条件满足则执行某一步骤否则不执行。 如下所示 void TemplateMethod::template() {open();display();if(isPrint){print();} } bool TemplateMethod::isPrint() {return true; }在代码中isPrint()是钩子方法它可以决定print()方法是否执行一般情况下钩子方法返回值为true如果不希望某方法执行可以在其子类中覆盖钩子方法将其返回值改为false。这种钩子方法可以控制方法的执行对一个算法进行约束。 第二类钩子方法就是实现体为空的具体方法子类可以根据需要覆盖或者继承这些钩子方法与抽象方法相比钩子方法的好处在于如果没有覆盖父类中定义的钩子方法编译可以通过但是如果没有覆盖父类中抽象方法编译将报错。 子类的钩子方法覆盖父类的钩子方法可以通过子类对父类方法的执行进行约束实现对父类的反向控制。 模板方法模式适用场景 一次性实现一个算法的不变部分并将可变行为留给子类来实现 。各子类中公共的行为应被提取出来并集中到一个公共父类中以避免代码重复。首先需要识别现有代码中的不同之处并且将不同之处分离为新的操作然后用一个调用这些新的操作的模板方法来替换这些不同的代码。对一些复杂的算法进行分割将其算法中固定不变的部分设计为模板方法和父类具体方法而一些可以改变的细节由其子类来实现。控制子类的扩展。模板方法只在特定点调用钩子方法这样就只允许在这些点进行扩展也就是说对于某些方法可以通过钩子方法来进行扩展而对于不能进行扩展的方法也可以将其定义为final方法对算法的扩展进行有效的控制和约束。 扩展 继承的使用 在扩展抽象层时采用继承具体类之间的复用 以及 抽象层之间的相互调用则使用关联关系。 好莱坞原则 子类不需要调用父类而通过父类来调用子类将某些步骤的实现写在子类中由父类来控制整个过程。 实例 银行业务办理 #include iostream #include vector using namespace std;class BankTemplateMethod { public:virtual ~BankTemplateMethod() default;virtual void take_number() final { cout 取号 endl;};virtual void transact() 0;virtual void evaluate() final { cout 反馈评分 endl; };virtual void process() final {this-take_number();this-transact();this-evaluate();}; };class Deposit : public BankTemplateMethod { public:void transact() override { cout 存款 endl;} };class Withdraw : public BankTemplateMethod { public:void transact() override { cout 取款 endl; } };class Transfer : public BankTemplateMethod { public:void transact() override { cout 转账 endl; } };int main (void) {vectorBankTemplateMethod * banks{new Deposit(),new Withdraw(),new Transfer()};for (auto i : banks) {i-process();cout \n;}for (auto i : banks) {delete i;} }
http://www.hkea.cn/news/14418590/

相关文章:

  • 网站备案信息传常州金坛网站建设
  • 专门做蛋糕视频的网站什么网站专门做软件的
  • 做直播网站开发教程新品发布会的目的
  • 淘宝请人做网站被骗小程序入口在哪里
  • 天津建设工程信息网站网站编写
  • 佛山网站建设怎样做山西两学一做网站登录
  • 只做公司网站方案wordpress视频播放系统
  • 网站服务器放置地黄骅烈士
  • 哪个网站做国内销海外的邵阳建网站
  • 青岛学网站建设的学校网站建设简讯
  • 亚马逊网站特点和经营范围中国网站建设公司有哪些方面
  • 像百度重新提交网站做网站导出用什么色彩模式
  • 可以做网站无锡正规网站建设
  • 谷歌搜索关键字网站网络热词排行榜
  • 山东网站建设优化技术c9设计软件
  • 国内网站不备案公司活动策划方案怎么做
  • 青岛 网站维护一级做爰片c视频网站
  • 住建局建设工程质量监督站网站 模板下载
  • 重庆给商家企业做网站大学生免费ppt网站
  • 集团定制网站建设公司2017两学一做竞赛网站
  • wordpress主题复杂上海网站搜索排名优化哪家好
  • 东营seo网站排名wordpress怎么做导航分类
  • h5网站模板源码wordpress网站网速慢
  • 博客建站模板网站开发验收流程
  • 简述制作网站的主要流程抖音代运营服务协议
  • 网站内容建设策略html的视频怎么下载
  • 免费拍卖网站模板设计公司品牌网站
  • 建设网站联盟跨境电商开发公司
  • 网站建设技术思维导图涟水做网站
  • 网站设计在营销中的作用交互式网站设计 深圳