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

成都网站建设好的公司医疗网站建设公司

成都网站建设好的公司,医疗网站建设公司,网站免费推广方式,网站建设管理岗位职责目录 必备背景知识 一.使用场景 二.核心逻辑 三.举例子 总结 必备背景知识 针对接口编程#xff0c;而不是针对实现编程#xff08;修改功能更加容易#xff0c;我们只需要对接口作出修改即可#xff09;优先使用组合而不是继承#xff08;继承会导致后来的子类都具…目录 必备背景知识 一.使用场景 二.核心逻辑 三.举例子 总结 必备背景知识 针对接口编程而不是针对实现编程修改功能更加容易我们只需要对接口作出修改即可优先使用组合而不是继承继承会导致后来的子类都具备了父类的功能有时候我们想让子类没有父类的某些功能 一.使用场景 由当前对象所拓展出来的对象有可能有新增功能或者不具备原来某些功能的时候可以使用。优点在于可拓展性高维护便捷能动态的改变对象的属性。若想给所有同一大类但不同属性的不同对象增加一个新的公用功能直接提供接口即可。不用依次修改。 二.核心逻辑 将不同对象反复变化的部分抽象封装出来后序修改时只针对变化的部分进行修改这样不会影响其他不变化的部分。 三.举例子 从代码理解好理解一些。假设我们有个基类鸭子我想拥有不同种类的鸭子子类。不同鸭子拥有不同的行为。有的会叫有的不会叫。我们统一将这些变化的属性抽象出来并单独成为一个行为类。同时基类提供接口来获取这些行为对象。同时针对这个行为我们可以实现多种不同的实现方法类。这样我们通过子类继承基类并在子类内特化这些行为对象选择对应的方法类就能动态的实现不同鸭子的不同行为了。把行为的决定权下放到子类而不是基类决定。基类只负责提供获取接口。 首先我们看基类duck class Duck { public:std::unique_ptrFlyBehavior flyBehavior; //两个行为对象由不同子类对象特化具体行为std::unique_ptrQuackBehavior quackBehavior;Duck(std::unique_ptrFlyBehavior flyBehavior, std::unique_ptrQuackBehavior quackBehavior); //这里采取将行为类在构造函数内传递的方式不同的鸭子将不同方法传给鸭子基类以实现构造virtual ~Duck() default; //析构函数虚继承为了正确释放void performQuack() const //父类提供接口给用户用户直接调取对应鸭子的状态{quackBehavior-quack(); //调用行为类内的接口具体实现由行为类下的实现方法类完成}virtual void display() const 0; //用于测试或实现鸭子具体功能void performFly() const{flyBehavior-fly();} }; 这样我们就需要提供对应的行为类。也就是飞行行为和叫行为。我们需要在两种行为类内实现接口提供给后来的行为的实现类使用并且保持一致。同时让鸭子的基类提供给用户使用的接口函数调用这个接口就能直接获取到不同的行为实现方法。 这里以飞行行为为例 class FlyBehavior { public:virtual void fly() const 0; //后序实现所有有关飞行行为的实现方法都要提供fly的实现virtual ~FlyBehavior() default; }; 这样我们就可以实现关于飞行的多种不同实现方式。包括但不限于用翅膀飞或者完全不能飞。 class FlyNoWay: public FlyBehavior { public: void fly() const {std::cout I cant fly! std::endl; //实现不会飞的鸭子} };class FlyWithWings: public FlyBehavior { public:virtual void fly() const {std::cout Im flying! std::endl; //实现用翅膀飞的鸭子} };到目前为止大体框架已经完成了。若想添加动态设置功能。我们可以不用智能指针并且在duck的基类内添加set接口将参数设置为行为方式将接受到的行为方式复制给当前鸭子内的行为方式即可。 总结 策略模式定义了一个算方族分辨封装使得相互之间可以互相转化。让各个模块独立。
http://www.pierceye.com/news/255283/

相关文章:

  • 专业的个人网站建设哪家建筑施工企业专职安全生产管理员
  • 企业网站模板php全球网站排名前100
  • 1688网站可以做全屏吗有哪些网站是织梦做的
  • vue2.0网站开发做网站没有成本的方法
  • 手机网站和app有什么区别流量对网站排名的影响因素
  • 北京全网营销推广公司网站建设以及seo
  • 免费html网站代码骨科医院网站模板
  • 华强方特网站开发辽宁工程技术大学电子信息网
  • 信誉好的网站建设案例微网站后台录入
  • 网站ui界面设计模板WordPress能连接支付端口吗
  • 网站建设与维护ppt模板下载昆明 网站搭建
  • 手机网站建设浩森宇特摄影作品投稿平台
  • 网站类网站开发犯罪吗肇东网站建设云聚达
  • 云南通耀建设工程有限公司网站少儿编程老师需要具备什么条件
  • 陕西交通建设集团蓝商分公司网站wordpress增加模板
  • 创建网站目录权限建网站域名注册后需要
  • 现在还有企业做网站的吗浏览器登录入口
  • 如何进行目的地网站建设阳江网站建设推广
  • 移动网站搭建如何做高并发网站的架构设计
  • 网站特效网网站制作出租
  • 公司商标设计logo图案优化专业的公司
  • 郑州网站设计见效快微信公众平台小程序入口
  • 自动化毕设题目网站开发自家电脑做网站服务器w7花生壳
  • 网站文件目录结构wordpress 短信发送
  • 合肥专业做网站的公司东莞阳光网投诉电话
  • 网站呢建设英雄联盟更新公告最新
  • 做ps图标什么网站最好免费微网站怎么做
  • 网站建设与网络编辑综合实训课程指导手册pdf软件外包
  • 网站开发规划书怎么写wordpress前端会员中心
  • asp.net网站建设实战 pdfWordpress媒体库途径