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

牡丹江seo网站推广蜘蛛屯优化排名网站常用的颜色

牡丹江seo网站推广蜘蛛屯优化排名,网站常用的颜色,双11销售数据,婚纱摄影网站设计案例桥接模式的定义 C的桥接模式#xff08;Bridge Pattern#xff09;是一种结构型设计模式#xff0c;它将抽象部分与实现部分分离#xff0c;使得它们可以独立地变化。桥接模式的核心思想是利用组合关系代替继承关系#xff0c;将系统划分成多个独立的、功能不同的类层次结…桥接模式的定义 C的桥接模式Bridge Pattern是一种结构型设计模式它将抽象部分与实现部分分离使得它们可以独立地变化。桥接模式的核心思想是利用组合关系代替继承关系将系统划分成多个独立的、功能不同的类层次结构并通过桥接类将它们连接起来。 在桥接模式中有两个重要的概念抽象化Abstraction和实现化Implementation它们分别对应了系统的抽象部分和实现部分。抽象化负责定义接口并维护一个指向实现化对象的指针实现化则负责定义具体的实现方法。 使用场景 关于桥接模式的使用对应的场景有很多比如 1.空调、电视等和他们对应的遥控器空调、电视机是抽象遥控器是实现 2.手机品牌和手机软件手机品牌是抽象手机软件是实现 3.跨品台的GUI在不同平台上运行程序的GUI层是抽象操作系统API是实现。 4.假设我们正在开发一个图形绘制应用程序支持多种图形和不同的绘制渲染方式。其中图形包括圆形、矩形等渲染方式包括使用直线绘制、使用虚线绘制等。这两个维度的变化都可能会在未来进行扩展和修改。 就是说将具体的图形和具体的渲染桥接在一起实现图形和渲染方式之间的解耦我们可以在客户端代码中使用桥接模式通过实例化具体的图形对象和具体的渲染实现对象将它们桥接在一起并进行绘制 #include iostream// Abstract Render API class RenderAPI { public:virtual void renderCircle() 0; // 抽象的渲染圆形方法virtual void renderRectangle() 0; // 抽象的渲染矩形方法 };// Concrete Line Renderer class LineRenderer : public RenderAPI { public:void renderCircle() override {std::cout Render Circle with lines. std::endl; // 使用线条渲染圆形}void renderRectangle() override {std::cout Render Rectangle with lines. std::endl; // 使用线条渲染矩形} };// Concrete Dashed Line Renderer class DashedLineRenderer : public RenderAPI { public:void renderCircle() override {std::cout Render Circle with dashed lines. std::endl; // 使用虚线渲染圆形}void renderRectangle() override {std::cout Render Rectangle with dashed lines. std::endl; // 使用虚线渲染矩形} };// Abstract Shape class Shape { protected:RenderAPI* renderAPI;public:Shape(RenderAPI* api) : renderAPI(api) {}virtual void draw() 0; // 抽象的绘制方法具体的形状类将实现这个方法 };// Concrete Circle class Circle : public Shape { public:Circle(RenderAPI* api) : Shape(api) {}void draw() override {renderAPI-renderCircle(); // 调用渲染API的渲染圆形方法来绘制圆形} };// Concrete Rectangle class Rectangle : public Shape { public:Rectangle(RenderAPI* api) : Shape(api) {}void draw() override {renderAPI-renderRectangle(); // 调用渲染API的渲染矩形方法来绘制矩形} };int main() {// 创建一个圆形对象并设置使用线条渲染的渲染APIShape* circleShape new Circle(new LineRenderer());// 创建一个矩形对象并设置使用虚线渲染的渲染APIShape* rectangleShape new Rectangle(new DashedLineRenderer());// 绘制圆形circleShape-draw();// 绘制矩形rectangleShape-draw();delete circleShape;delete rectangleShape;return 0; }海贼王实例 对于海贼王中来说有海军有海贼团不论是海军还是海贼团他们都有自己的船海军的船叫军舰海贼团的船叫海贼船因此我们需要将船和团队分开 船海贼团 --海贼船 船海军—军舰 对于一个海贼团或者一支海军部队来说光有船是不完整的船只是这个团队的抽象如果想要让它鲜活起来就必要要有由人组成的团队也就是抽象的具体实现。所以在这个抽象类中包含了一个团队对象船和团队二者之间的关系可以看做是聚合关系。 我们以草帽海贼团和斯摩格海贼团为例 #include iostream #includestring #includemap using namespace std;//不论是哪艘船上的船员肯定都是由一些个人的身份信息为了将这些信息记录下来先定一个存储数据的类 //人员信息 struct Person {Person(string name, string job, string ability, string reward, string beizhustring()){this-name name;this-job job;this-ability ability;this-reward reward;this-beizhu beizhu;}~Person(){cout name 被析构了... endl;}string name; //姓名string job; //工作string ability; //能力string reward; //赏金string beizhu; //备注 }; //关于团队的成员组成可以是海贼也可以是海军所以先定义一个团队的抽象类 class AbstractTeam { public:AbstractTeam(string name):m_teamName(name) {}//获取团队姓名string getTeamName(){return m_teamName;}//给团队添加成员,用map保存键是姓名值是Person类void addMember(Person* p){m_infoMap.insert(make_pair(p-name,p));}//打印成员信息void show(){cout m_teamName : endl;//遍历mapfor(const auto item:m_infoMap){cout 【Name: item.second-name , Job: item.second-job , Ability: item.second-ability , MoneyReward: item.second-reward , BeiZhu: item.second-beizhu 】 endl;}}//执行任务函数海军和海贼的任务不同因此是纯虚函数子类中重写virtual void executeTask() 0;//虚析构函数释放类时将m_infoMap保存的团队所有成员都析构掉virtual ~AbstractTeam(){for (const auto item : m_infoMap){delete item.second;}} protected:string m_teamName string();//该团队的所有成员mapstring, Person* m_infoMap; }; //具体的团队类路飞的草帽海贼团和斯摩格的海军团 //草帽海贼团 class CaoMaoTeam :public AbstractTeam { public:using AbstractTeam::AbstractTeam;//继承基类的构造函数而不用子类重新实现相同的构造函数void executeTask() override{cout 在海上冒险找到 ONE PIECE 成为海贼王 endl;} }; //斯摩格海军团队 class SmokeTeam :public AbstractTeam { public:using AbstractTeam::AbstractTeam;void executeTask()override{cout 为了正义先将草帽一伙一网打尽 endl;} }; //船类 /*不论是海军还是海贼在大海上航行都需要船虽然他们驾驶的船只不同 但是有很多属性还是一致的所以我们可以先定义一个船的抽象类*/ class AbstructShip { public:AbstructShip(AbstractTeam* team) :m_team(team) {} //团队船void showTeam(){m_team-show();m_team-executeTask();}virtual string getName() 0;virtual void feature() 0; //纯虚函数描述船的特点在不同的子类中都需要重写virtual~AbstructShip() {} protected:AbstractTeam* m_team nullptr; //这里将团队和船绑定在一起了 }; //梅丽号 class Merry :public AbstructShip { public:using AbstructShip::AbstructShip;string getName() override{return string(前进梅丽号);}void feature()override{cout getName() --船首为羊头在司法岛化身船精灵舍己救下草帽一伙 endl;} }; //海军无敌战舰 class HaiJunJian :public AbstructShip { public:using AbstructShip::AbstructShip;string getName()override{return string(无敌海军号);}void feature() override{cout getName() -- 船底由海楼石建造, 可以穿过无风带的巨大炮舰! endl;} }; int main() {//草帽海贼团CaoMaoTeam* caomao new CaoMaoTeam(草帽海贼团);Person* luffy new Person(路飞, 船长, 橡胶果实能力者, 30亿贝里, 爱吃肉);Person* zoro new Person(索隆, 剑士, 三刀流, 11亿1100万贝里, 路痴);Person* sanji new Person(山治, 厨师, 隐形黑, 10亿3200万贝里, 好色);Person* nami new Person(娜美, 航海士, 天候棒宙斯, 3亿6600万贝里, 喜欢钱);caomao-addMember(luffy);caomao-addMember(zoro);caomao-addMember(sanji);caomao-addMember(nami);Merry* sunny new Merry(caomao);sunny-feature();sunny-showTeam();//斯摩格SmokeTeam* smoke new SmokeTeam(斯摩格海军团);Person* smoker new Person(斯摩格, 中将, 冒烟果实能力者, , 爱吃烟熏鸡肉);Person* dasiqi new Person(达斯琪, 大佐, 一刀流, , 近视);smoke-addMember(smoker);smoke-addMember(dasiqi);HaiJunJian* ship new HaiJunJian(smoke);ship-feature();ship-showTeam();delete caomao;delete sunny;delete smoke;delete ship;return 0;}
http://www.hkea.cn/news/14428233/

相关文章:

  • 做外贸现在一般都通过哪些网站重庆开发app的公司
  • 做设计的网站手机版企业网站php
  • 网站建设做什么会计科目在线药店网站建设
  • seo 网站两个ip做网站的技术路线
  • 关于药品网站建设策划书wordpress数据库用户导出
  • 优秀的图片设计网站苏州集团网站设计公司
  • 网站后台上传用户界面不显示泰安网红餐厅
  • 公司做公司网站广告自己做的网站如何制作后台
  • 做网站需要多少带宽统计站老站长推荐app视频
  • 门户网站为什么衰落网站建设个人主要事迹
  • 网站字体颜色大小中国网站开发排名
  • 域名注册成功后怎么使用网站石家庄网站服务
  • 成都企业网站设计制作营销型的网站
  • 网站没备案怎么做广告联盟东莞软件定制开发
  • 大田县建设局官方网站什么网站可以做ui兼职
  • 最新的购物网站 开网站改版方案怎么写
  • 广州网站建设公司怎么挑选中国建筑网址
  • 关于信用体系建设的网站wordpress 前端开发
  • 肇庆网站制作费用wordpress常用钩子
  • 门户网站建设工作情况总结百度联盟广告点击一次收益
  • 织梦网站查看原有文章四川省建设厅证件查询
  • 定制网站制作服务商无锡网站制作.
  • wordpress外贸网站模板深圳网站设计 建设元
  • 株洲市做公司官方网站成功的网站必须具备的要素
  • 电子政务与网站建设工作总结广西网站seo
  • 网站规划和构成找软件开发公司
  • 如何创造免费网站网络营销方案格式
  • 怎么做php登陆网站谁做网站
  • 怎么看一个网站是用模板什么做的注册网站登录
  • 模板网站zencart初级软件工程师报考条件