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

在建设部网站上的举报儿童 网站模板

在建设部网站上的举报,儿童 网站模板,做产地证网站,网站做虚假宣传有没有做处罚【声明】本题目来源于卡码网#xff08;题目页面 (kamacoder.com)#xff09; 【提示#xff1a;如果不想看文字介绍#xff0c;可以直接跳转到C编码部分】 【简介】什么是桥接模式 桥接模式#xff08;Bridge Pattern#xff09;是⼀种结构型设计模式#xff0c;它的U…【声明】本题目来源于卡码网题目页面 (kamacoder.com) 【提示如果不想看文字介绍可以直接跳转到C编码部分】 【简介】什么是桥接模式 桥接模式Bridge Pattern是⼀种结构型设计模式它的UML图很像⼀座桥它通过将【抽象部分】与【实现部分】分离使它们可以独⽴变化从⽽达到降低系统耦合度的⽬的。桥接模式的主要⽬的是通过组合建⽴两个类之间的联系⽽不是继承的⽅式。         举个简单的例⼦图形编辑器中每⼀种图形都需要蓝⾊、红⾊、⻩⾊不同的颜⾊如果不使⽤桥接模式可能需要为每⼀种图形类型和每⼀种颜⾊都创建⼀个具体的⼦类⽽使⽤桥接模式可以将图形和颜⾊两个维度分离两个维度都可以独⽴进⾏变化和扩展如果要新增其他颜⾊只需添加新的 Color ⼦类不影响图形类反之亦然。 【基本结构】 桥接模式的基本结构分为以下⼏个⻆⾊ 抽象Abstraction ⼀般是抽象类定义抽象部分的接⼝维护⼀个对【实现】的引⽤。修正抽象RefinedAbstaction 对抽象接⼝进⾏扩展通常对抽象化的不同维度进⾏变化或定制。实现Implementor 定义实现部分的接⼝提供具体的实现。这个接⼝通常是抽象化接⼝的实现。具体实现ConcreteImplementor 实现实现化接⼝的具体类。这些类负责实现实现化接⼝定义的具体操作。 再举个例⼦遥控器就是抽象接⼝它具有开关电视的功能修正抽象就是遥控器的实例对遥控器的功能进⾏实现和扩展⽽电视就是实现接⼝具体品牌的电视机是具体实现遥控器中包含⼀个对电视接⼝的引⽤通过这种⽅式遥控器和电视的实现被分离我们可以创建多个遥控器每个遥控器控制⼀个品牌的电视机它们之间独⽴操作不受电视品牌的影响可以独⽴变化。 【简易实现】 下⾯是实现桥接模式的基本步骤以Java代码作以说明 1. 创建实现接口 interface Implementation {void operationImpl(); } 2. 创建具体实现类实际提供服务的对象 class ConcreteImplementationA implements Implementation {Overridepublic void operationImpl() {// 具体实现A} } class ConcreteImplementationB implements Implementation {Overridepublic void operationImpl() {// 具体实现B} } 3. 创建抽象接⼝包含⼀个对实现化接⼝的引⽤。 public abstract class Abstraction {protected IImplementor mImplementor;public Abstraction(IImplementor implementor) {this.mImplementor implementor;} public void operation() {this.mImplementor.operationImpl();} } 4. 实现抽象接⼝创建RefinedAbstaction 类 class RefinedAbstraction implements Abstraction {private Implementation implementation;public RefinedAbstraction(Implementation implementation) {this.implementation implementation;}Overridepublic void operation() {// 委托给实现部分的具体类implementation.operationImpl();} } 5. 客户端使⽤ // 客户端代码 public class Main {public static void main(String[] args) {// 创建具体实现化对象Implementation implementationA new ConcreteImplementationA();Implementation implementationB new ConcreteImplementationB();// 使⽤扩充抽象化对象将实现化对象传递进去Abstraction abstractionA new RefinedAbstraction(implementationA);Abstraction abstractionB new RefinedAbstraction(implementationB);// 调⽤抽象化的操作abstractionA.operation();abstractionB.operation();} } 【使用场景】 桥接模式在⽇常开发中使⽤的并不是特别多通常在以下情况下使⽤ 当⼀个类存在两个独⽴变化的维度⽽且这两个维度都需要进⾏扩展时使⽤桥接模式可以使它们独⽴变化减少耦合。不希望使⽤继承或继承导致类爆炸性增⻓ 总体⽽⾔桥接模式适⽤于那些有多个独⽴变化维度、需要灵活扩展的系统。 【编码部分】 1. 题目描述 小明家有一个万能遥控器能够支持多个品牌的电视。每个电视可以执行开机、关机和切换频道的操作请你使用桥接模式模拟这个操作。 2. 输入描述 第一行是一个整数 N1 N 100表示后面有 N 行输入。接下来的 N 行每行包含两个数字。第一个数字表示创建某个品牌的遥控和电视第二个数字表示执行的操作。其中0 表示创建 Sony 品牌的电视1 表示创建 TCL 品牌的遥控和电视2 表示开启电视、3表示关闭电视4表示切换频道。         3. 输出描述 对于每个操作输出相应的执行结果。 4. C编码实例 /** * version Copyright (c) 2024 NCDC, Servo。 Unpublished - All rights reserved * file BridgeMode.hpp * brief 桥接模式 * autor 写代码的小恐龙er * date 2024/01/11 */#include iostream #include stringusing namespace std;// 前置声明 // 实现化接口 class TV; // 第一个维度的扩充 // 具体实现类1 -- Sony Tv class SonyTv; // 具体实现类2 -- TCL Tv class TclTv;// ----------------------------------// 抽象化接口 class RemoteControl; // 第二个维度的扩充 // 实现抽象化接口 -- 开机 class TurnOn; // 实现抽象化接口 -- 关机 class TurnOff; // 实现抽象化接口 -- 切换频道 class SwitchChannel;// 实现化接口 class TV {// 接口函数 public:virtual void TurnOnTV() 0;virtual void TurnOffTV() 0;virtual void SwitchTVChannel() 0; };// 具体实现类1 -- Sony Tv class SonyTv : public TV {public:// 重载接口函数void TurnOnTV(){std::cout Sony TV is ON endl;}void TurnOffTV(){std::cout Sony TV is OFF endl;}void SwitchTVChannel(){std::cout Switching Sony TV channel endl;} };// 具体实现类2 -- TCL Tv class TclTv : public TV { public:// 重载接口函数void TurnOnTV(){std::cout TCL TV is ON endl;}void TurnOffTV(){std::cout TCL TV is OFF endl;}void SwitchTVChannel(){std::cout Switching TCL TV channel endl;} };// 抽象化接口 class RemoteControl { // 抽象化接口类持有实现化接口类的实例 protected:TV *_tv;public:// 重载构造函数RemoteControl(){}RemoteControl(TV *tv){this-_tv tv;}// 提供抽象类接口函数virtual void OperationMode() 0; };// 实现抽象化接口 -- 开机 class TurnOn : public RemoteControl { private:// 实现抽象接口类持有实现化接口类的实例TV *_tv;public:// 重载构造函数 以便后续调用能传入抽象类TurnOn(TV *tv){this-_tv tv;}// 重载抽象类接口函数void OperationMode() override {this-_tv-TurnOnTV();}}; // 实现抽象化接口 -- 关机 class TurnOff : public RemoteControl { private:// 实现抽象接口类持有实现化接口类的实例TV *_tv;public:// 重载构造函数 以便后续调用能传入抽象类TurnOff(TV *tv){this-_tv tv;}// 重载抽象类接口函数void OperationMode() override {this-_tv-TurnOffTV();} };// 实现抽象化接口 -- 切换频道 class SwitchChannel : public RemoteControl { private:// 实现抽象接口类持有实现化接口类的实例TV *_tv;public:// 重载构造函数 以便后续调用能传入抽象类SwitchChannel(TV *tv){this-_tv tv;}// 重载抽象类接口函数void OperationMode() override {this-_tv-SwitchTVChannel();} };int main() {// 执行操作的数量int operationNum 0;// 输入std::cin operationNum;// 创建实现化接口TV *tv nullptr;RemoteControl *control nullptr;// 遍历输入for(int i 0; i operationNum; i){// 电视机类型int tvType -1;// 遥控器操作类型int controlType -1;// 输入std:: cin tvType controlType;// 电视机类型if(!tvType){tv new SonyTv();}else if(tvType 1){tv new TclTv();}else tv nullptr;// 若输入指令错误则直接返回if(tv nullptr) return 0;// 遥控器操作类型if(controlType 2){control new TurnOn(tv);}else if(controlType 3){control new TurnOff(tv);}else if(controlType 4){control new SwitchChannel(tv);}else control nullptr;// 若输入指令错误则直接返回if(control nullptr) return 0;// 执行操作control-OperationMode();}delete tv;tv nullptr;delete control;control nullptr;return 0; } ...... To be continued.
http://www.pierceye.com/news/364419/

相关文章:

  • 网站推广服务器怎么选wordpress获取菜单链接地址
  • 横岗做网站外贸网站建设推广优化
  • 怎样搭建一个个人网站国金紫郡府淮北论坛
  • 网站建设类型wordpress词典模板
  • wordpress标签订阅插件优化网站视频
  • 聊城市建设工程质量监督站网站济南建站公司哪有
  • 郑州做网站便宜没有有知道钓鱼网站在哪儿做
  • 免费建自己域名的网站吗seo推广排名软件
  • 关于asp_sql网站开发的书籍专门做图片的网站cms
  • 淮安 网站建设:2003建网站
  • 怎么做网站的主页面编程软件scratch免费下载
  • 建设银行无锡分行网站网页版游戏单机游戏
  • 遵义网站建设中心如何低成本做网站推广
  • 国基建设集团有限公司网站学校网站网页模板
  • 舟山网站开发免费com域名网站
  • 网站开发 脚本之家怎么注册一个企业邮箱
  • 青岛做网站公企业管理软件销售
  • 简约风格的网站宁波余姚网站建设
  • 口碑好的免费网站建设企业做网站电话约见客户的对话
  • 做网站采集传统的网站开发模式
  • 网站用哪个软件做中国建设银行行号查询
  • 公司简介网站模板常州建设工程信息网
  • 综合类门户网站有哪些wordpress媒体库一直转圈
  • 官方网站建设属于什么科目室内设计很多人都干不下去了
  • 如何保存个人网站部队网站模板
  • 郑州哪家专业做淘宝网站佛山网站建设no.1
  • 做网站那个程序好国内做网站哪家公司好
  • 自己做网站优化以下属于购物搜索广告的是
  • 做外单网站有哪些鸿科经纬教网店运营推广
  • 网站开发的项目网站开发文档总结