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

甘肃手机版建站系统价格营销网站开发系统

甘肃手机版建站系统价格,营销网站开发系统,高校 门户网站 建设背景,校园综合门户网站建设方案目录 1、Bridge模式的提出 2、Bridge模式的定义 3、Bridge模式总结 4、需求描述 5、多继承方式实现 6、使用Bridge设计模式实现 1、Bridge模式的提出 在软件功能模块设计中#xff0c;如果类的实现功能划分不清晰#xff0c;使得继承得到的子类往往是随着需求的变化如果类的实现功能划分不清晰使得继承得到的子类往往是随着需求的变化子类急剧膨胀充斥重复代码。将类要实现功能划分清楚是设计较好软件框架的关键。 2、Bridge模式的定义 对于类的实现功能具有两个变化的维度甚至由多个维度的变化使用类的多继承实现方式会使子类数目急剧膨胀。Bridge模式使用“对象间的组合关系”解耦抽象和实现之间固有的绑定关系使得抽象和实现可以沿着各自的维度变化即将不同的维度分别进行抽象然后各自根据变化维度进行继承。 3、Bridge模式总结 Bridge模式的应用一般在“两个非常强的变化维度”有时一个类甚至有多个变化的维度这时使用Bridge模式的扩展模式来设计代码。 4、需求描述 手机有固有属性材料、颜色、摄像头个数和软件属性开机动画、网络打印、支持app数目。有2款A、B类型手机A、B分别继承手机的固有属性功能。在A款基础上又有2款Higher、Pro类型Higher、Pro分别继承手机的软件功能在B款的基础上也有2种Higher、Pro这2种也分别继承手机的软件功能。 5、多继承方式实现 #include iostreamclass MobilePhone { public://手机材质virtual void PhoneMaterial()0;//手机颜色virtual void PhoneColor()0;//手机大小virtual void PhoneCameNum()0;//开机动画virtual void BootAnimation()0;//网络打印类型virtual void NetPrintType()0;//软件支持数目virtual void SoftSuppotNum()0;virtual ~MobilePhone(){};};//下面的类继承关系中不同层级的类继承不同抽象函数可以分函数抽象一个类见Bridge模式。class APhoneNoraml:public MobilePhone { public:virtual ~APhoneNoraml(){};virtual void PhoneMaterial()override{std::cout Glass material std::endl;};virtual void PhoneColor()override{std::cout 2 Colors std::endl;};virtual void PhoneCameNum()override{std::cout 2 CamNum std::endl;}; };class BPhoneNoraml:public MobilePhone { public:virtual ~BPhoneNoraml(){};virtual void PhoneMaterial()override{std::cout Glass material std::endl;};virtual void PhoneColor()override{std::cout 3 Colors std::endl;};virtual void PhoneCameNum()override{std::cout 3 CamNum std::endl;}; };class APhoneHiger:public APhoneNoraml { public:virtual ~APhoneHiger(){};virtual void BootAnimation()override{APhoneNoraml::PhoneMaterial();APhoneNoraml::PhoneColor();APhoneNoraml::PhoneCameNum();std::cout good luck std::endl;};virtual void NetPrintType()override{std::cout Support base txt type std::endl;};virtual void SoftSuppotNum()override{std::cout Support 20 app std::endl;}; };class BPhoneHiger:public BPhoneNoraml { public:virtual ~BPhoneHiger(){};virtual void BootAnimation()override{BPhoneNoraml::PhoneMaterial();BPhoneNoraml::PhoneColor();BPhoneNoraml::PhoneCameNum();std::cout gook lunck std::endl;};virtual void NetPrintType()override{std::cout Support base txt type std::endl;};virtual void SoftSuppotNum()override{std::cout Support 20 app std::endl;};};class APhonePro:public APhoneNoraml { public:virtual ~APhonePro(){};virtual void BootAnimation()override{APhoneNoraml::PhoneMaterial();APhoneNoraml::PhoneColor();APhoneNoraml::PhoneCameNum();std::cout best wishes std::endl;};virtual void NetPrintType()override{std::cout Support base 3 type std::endl;};virtual void SoftSuppotNum()override{std::cout Support 30 app std::endl;}; };class BPhonePro:public BPhoneNoraml { public:virtual ~BPhonePro(){};virtual void BootAnimation()override{BPhoneNoraml::PhoneMaterial();BPhoneNoraml::PhoneColor();BPhoneNoraml::PhoneCameNum();std::cout best wishes std::endl;};virtual void NetPrintType()override{std::cout Support base 3 type std::endl;};virtual void SoftSuppotNum()override{std::cout Support 30 app std::endl;};};int main() {MobilePhone* higherA new APhoneHiger();higherA-BootAnimation();higherA-NetPrintType();higherA-SoftSuppotNum();delete higherA;higherA nullptr;MobilePhone* proA new APhonePro();proA-BootAnimation();proA-NetPrintType();proA-SoftSuppotNum();delete proA;proA nullptr;return 0; }运行结果如下 6、使用Bridge设计模式实现 #include iostream//将第一个变化维度的三个函数抽象成一个类供第二层继承使用 class MobilePhone { public://手机材质virtual void PhoneMaterial()0;//手机颜色virtual void PhoneColor()0;//手机大小virtual void PhoneCameNum()0;virtual ~MobilePhone(){} };//将第二个变化维度的三个函数抽象出一个类供第三层继承使用 class MobileSoft { public:MobileSoft(MobilePhone* p):Imp(p){};MobilePhone *Imp;//开机动画virtual void BootAnimation()0;//网络打印类型virtual void NetPrintType()0;//软件支持数目virtual void SoftSuppotNum()0; };class APhoneNoraml:public MobilePhone { public:virtual ~APhoneNoraml(){};virtual void PhoneMaterial()override{std::cout Glass material std::endl;};virtual void PhoneColor()override{std::cout 2 Colors std::endl;};virtual void PhoneCameNum()override{std::cout 2 CamNum std::endl;}; };class BPhoneNoraml:public MobilePhone { public:virtual ~BPhoneNoraml(){};virtual void PhoneMaterial()override{std::cout Glass material std::endl;};virtual void PhoneColor()override{std::cout 3 Colors std::endl;};virtual void PhoneCameNum()override{std::cout 3 CamNum std::endl;}; };//在第三层继承关系处使用对象组合。 class PhoneHiger:public MobileSoft { public:PhoneHiger(MobilePhone *p):MobileSoft(p){};virtual ~PhoneHiger(){};virtual void BootAnimation()override{Imp-PhoneMaterial();Imp-PhoneColor();Imp-PhoneCameNum();std::cout good luck std::endl;};virtual void NetPrintType()override{std::cout Support base txt type std::endl;};virtual void SoftSuppotNum()override{std::cout Support 20 app std::endl;}; };class PhonePro:public MobileSoft { public:PhonePro(MobilePhone *p):MobileSoft(p){};virtual ~PhonePro(){};virtual void BootAnimation()override{Imp-PhoneMaterial();Imp-PhoneColor();Imp-PhoneCameNum();std::cout best wishes std::endl;};virtual void NetPrintType()override{std::cout Support base 3 type std::endl;};virtual void SoftSuppotNum()override{std::cout Support 30 app std::endl;}; };int main() {std::cout ************** PhoneHiger ************** std::endl;MobilePhone *normalA new APhoneNoraml();MobileSoft *higherA new PhoneHiger(normalA);higherA-BootAnimation();higherA-NetPrintType();higherA-SoftSuppotNum();std::cout \n ************** PhonePro ************** std::endl;MobilePhone *normalPro new APhoneNoraml();MobileSoft *proA new PhonePro(normalPro);proA-BootAnimation();proA-NetPrintType();proA-SoftSuppotNum();return 0; }运行结果如下 上面的代码将不同的变化维度分别抽象成一个类供子类继承并且其中一个维度的继承关系用“类成员是基类对象”组合的方式进行替代使功能类代码具有良好的扩展性也遵循单一职责原则。
http://www.eeditor.cn/news/126082/

相关文章:

  • 如何做网站词库江苏省建筑网监督信息平台
  • 打开网站弹出qq网站子站建设
  • 张店低价网站建设网站如何选择服务器
  • 为什么备案关闭网站网站开发报价表格
  • 网站开发通用流程图代做网站推广的公司
  • 中国建设局网站临海市住房与城乡建设规划局网站
  • 用.net做网站好 还是用php网站建设的相关新闻
  • 有教做点心的网站吗莆田网站自助建站
  • 网站建设分工明细表宁波网站制作首荐荣盛网络好
  • 做暧暧视频免费视频网站海沧区建设局网站市政处
  • 网站流量超昌吉网站建设电话
  • wordpress视频页面沙洋县seo优化排名价格
  • 给人做网站做一个15页的网站怎么做
  • 太原工程建设信息网站百度seo怎么收费
  • 用什么软件来做网站山东网站建设模板制作
  • 电子商务网站建设与管理期末考试网站建设高校
  • 做网站建设公司企业物联网设计论文
  • 电子商务网站模块免费ppt模板下载网址不需要会员
  • 石家庄网站推广专业濮阳市建设工程交易网
  • 网站列表页是啥浙江大成建设集团有限公司网站
  • 黄页网站介绍制作网站建网站
  • 网站域名必须备案吗怎么把网站放到服务器上
  • 响应式网站建设推荐乐云践新金方时代网站建设
  • 学习网站建设的心得体会贵港做网站化司
  • 全栈网站开发流程图佳木斯外贸网站建设
  • 山东省建设厅执业注册中心网站手机怎样用网站做成软件
  • 深圳骏域网站建设专家88兰州新区小程序建站
  • 如何做采集网站旅游电子商务的三创赛网站建设
  • 网站推广采用的方法网站解析后怎么做
  • 网站的大图标怎么做手机可以建网站嘛建站好吗