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

潍坊网站开发招生信息河北农业建设信息网站

潍坊网站开发招生信息,河北农业建设信息网站,东营网站建设方案,网站设计实训报告目录 1、桥接模式#xff08;Bridge Pattern#xff09;含义 2、桥接模式应用场景 3、桥接模式的UML图学习 4、C实现桥接模式的示例 1、桥接模式#xff08;Bridge Pattern#xff09;含义 桥接模式是一种结构型设计模式#xff0c;它将抽象部分与实现部分分离#…目录 1、桥接模式Bridge Pattern含义 2、桥接模式应用场景 3、桥接模式的UML图学习 4、C实现桥接模式的示例 1、桥接模式Bridge Pattern含义 桥接模式是一种结构型设计模式它将抽象部分与实现部分分离使它们可以独立地变化。 2、桥接模式应用场景 1当你希望抽象部分和实现部分可以独立地扩展和变化时可以使用桥接模式。它可以让抽象部分和实现部分可以独立地进行演化而不会相互影响。 2当一个类存在多个维度的变化且每个维度都需要独立地进行扩展时可以考虑使用桥接模式。通过将每个维度的变化抽象为不同的继承层次结构然后通过桥接模式将这些继承层次结构连接起来可以灵活地组合不同的变化。 3当需要在运行时动态地选择或切换抽象部分和实现部分的关系时可以使用桥接模式。通过将抽象部分和实现部分解耦并通过组合的方式建立关联可以在运行时灵活地选择具体的实现。 4当希望对抽象部分和实现部分进行共享和复用时可以考虑使用桥接模式。通过将抽象部分和实现部分分离可以使它们可以独立地进行复用从而提高代码的可维护性和可扩展性。 总的来说桥接模式适用于抽象部分和实现部分需要独立演化、存在多个维度的变化、需要动态选择关系或希望进行共享和复用的场景。它可以提供更好的灵活性、可扩展性和可维护性。 3、桥接模式的UML图学习 在上述UML类图中有以下几个关键角色 Abstraction抽象类定义了抽象部分的接口并包含一个指向Implementor的成员变量。它的具体子类可以通过调用Implementor的方法来实现自己的操作。 Implementor实现类接口定义了实现部分的接口它通常只提供了一些基本的操作方法。 ConcreteImplementorA、ConcreteImplementorB具体实现类实现了Implementor接口具体实现了实现部分的操作方法。 RefinedAbstractionA、RefinedAbstractionB扩展抽象类继承自Abstraction并通过调用Implementor的方法来实现自己的操作。 在桥接模式中抽象部分和实现部分通过关联关系连接在一起而不是继承关系。这样可以使得抽象部分和实现部分可以独立地变化和演化。 4、C实现桥接模式的示例 #include iostream #include string// 实现接口 class Implementor { public:virtual void operationImpl() const 0; };// 具体实现类A class ConcreteImplementorA : public Implementor { public:void operationImpl() const override {std::cout ConcreteImplementorA: operationImpl std::endl;} };// 具体实现类B class ConcreteImplementorB : public Implementor { public:void operationImpl() const override {std::cout ConcreteImplementorB: operationImpl std::endl;} };// 抽象类 class Abstraction { protected:Implementor* m_implementor;public:Abstraction(Implementor* implementor) : m_implementor(implementor) {}virtual void operation() const 0; };// 扩展抽象类A class RefinedAbstractionA : public Abstraction { public:RefinedAbstractionA(Implementor* implementor) : Abstraction(implementor) {}void operation() const override {std::cout RefinedAbstractionA: ;m_implementor-operationImpl();} };// 扩展抽象类B class RefinedAbstractionB : public Abstraction { public:RefinedAbstractionB(Implementor* implementor) : Abstraction(implementor) {}void operation() const override {std::cout RefinedAbstractionB: ;m_implementor-operationImpl();} };int main() {// 创建具体实现类对象Implementor* implementorA new ConcreteImplementorA();Implementor* implementorB new ConcreteImplementorB();// 使用扩展抽象类A调用操作Abstraction* abstractionA new RefinedAbstractionA(implementorA);abstractionA-operation();// 使用扩展抽象类B调用操作Abstraction* abstractionB new RefinedAbstractionB(implementorB);abstractionB-operation();delete implementorA;delete implementorB;delete abstractionA;delete abstractionB;return 0; } 在上述示例中我们首先定义了实现接口Implementor其中包含了一个纯虚函数operationImpl()。然后我们实现了两个具体的实现类ConcreteImplementorA和ConcreteImplementorB它们分别继承自实现接口并实现了接口中的纯虚函数。 接着我们定义了抽象类Abstraction其中包含了一个指向实现接口的指针并声明了一个纯虚函数operation()。然后我们通过扩展抽象类ARefinedAbstractionA和扩展抽象类BRefinedAbstractionB来实现具体的抽象类它们分别继承自抽象类并实现了抽象类中的纯虚函数。 在主函数中我们创建了具体的实现类对象implementorA和implementorB然后通过扩展抽象类A和扩展抽象类B来调用操作。在调用操作时实际上会调用到具体的实现类中的具体函数。
http://www.yutouwan.com/news/261330/

相关文章:

  • 门户网站系统建设项目投标书账号权重查询入口站长工具
  • 建站公司 商城做网站哪些公司
  • 创业服务网网站建设方案项目书wordpress淘宝客推广插件
  • 专业网站建设经费申请公司装修设计公司
  • 黑色网站素材wordpress reddit主题
  • 专业购物网站建设报价福州抖音seo
  • 购物网站主要的功能模块个人网站如何做
  • 做网站应该注意些什么问题网站google排名出现过几分钟
  • 移动网站开发流行WordPress小说漫画主题国外
  • 如何做网页或网站做购物比价的网站
  • 网站开发符合seo结构厦门专业网站设计公
  • 优秀网站展示国外做的比较好的网站
  • 嘉兴网站建设999 999下载班级优化大师app
  • 保山便宜的网站建设建设公司大还是建筑公司大
  • 南阳手机网站制作网站新闻图片尺寸
  • 广州市住房建设部网站如何删除网站备案号
  • 怎么自己做推广网站低价网站制作
  • 成都网站设计龙兵科技oa系统开发公司
  • html网站建设方案长春 建设工程信息网站
  • vs用户登录注册网站建设代码制造网
  • 建设一个网站需要哪些方面的开支国外优秀企业网站欣赏
  • 精仿腾讯3366小游戏门户网站源码织梦最新内核带全部数据!时尚网站设计教程
  • 收费下载网站源码潍坊网站模板在哪
  • 网站开发前端技术怎么在网站投放广告
  • app展示网站宁波论坛招聘最新消息
  • 免费个人网站在线制作建站公司收费标准
  • 网站后台框架模版网站页面可以用什么框架做
  • 厦门易尔通做网站怎么样企业网站规划书
  • 网站制作 数据库学校网站建设评分标准
  • 网站建设款计入哪个会计分录网上做汽配生意的网站