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

网站建设厘金手指排名二二网站建网站建设企业

网站建设厘金手指排名二二,网站建网站建设企业,网站建设字体变色代码,wordpress iis 404上一篇《适配器模式》 下一篇《装饰器模式》 简介#xff1a; 桥接模式#xff0c;它是一种结构型设计模式#xff0c;它的主要目的是将抽象部分与具体实现部分分离#xff0c;使它们都可以独立地变化。…上一篇《适配器模式》                                                                 下一篇《装饰器模式》 简介 桥接模式它是一种结构型设计模式它的主要目的是将抽象部分与具体实现部分分离使它们都可以独立地变化。桥接模式通过使用封装、聚合及继承等行为让不同的类承担不同的职责从而把抽象Abstraction与行为实现Implementation分离开来以保持各部分的独立性以及应对他们的功能扩展。 桥接模式的结构包括以下主要角色 1、抽象类AbstractClass定义了抽象接口并实现了部分功能。 2、具体实现类ConcreteClass实现了抽象类所定义的具体接口完成抽象类的功能实现。 3、桥接类BridgeClass将抽象类和具体实现类连接起来使得它们可以独立地变化。 桥接模式的使用场景 1、系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性避免在两个层次之间建立静态的继承联系。此时可以通过桥接模式使他们在抽象层建立一个关联关系。 2、系统不希望使用继承或因为多层次继承导致系统类的个数急剧增加时。 3、一个类存在两个独立变化的维度而这两个维度都需要进行扩展。 桥接模式的创建步骤 1、创建抽象类AbstractClass它定义了抽象接口并实现了部分功能。 2、创建具体实现类ConcreteClass它实现了抽象类所定义的具体接口完成抽象类的功能实现。 3、创建桥接类BridgeClass它将抽象类和具体实现类连接起来使得它们可以独立地变化。 桥接模式的优点主要包括 1、分离抽象及其实现部分桥接模式通过将抽象部分与实现部分分离使得它们可以独立地变化。这种分离有助于降低对实现部分编译时刻的依赖性当改变一个实现类时并需要重新编译抽象类和它的客户程序。同时接口与实现分离有助于分层从而产生更好的结构化系统系统的高层部分仅需知道抽象类和具体实现类即可。 2、提高可扩充性桥接模式使得抽象类和具体实现类可以独立地变化因此可以独立地对它们进行扩展。这种扩展能力有助于提高系统的可维护性和可重用性。 3、优秀的扩展能力桥接模式使得抽象类和具体实现类可以独立地变化因此可以灵活地添加新的具体实现类以满足新的需求。这种扩展能力使得系统能够适应未来的变化和发展。 总之桥接模式通过将抽象部分与实现部分分离提高了系统的可维护性、可重用性和可扩展性同时降低了系统的复杂性。 桥接模式的缺点主要包括 1、增加了系统的理解和设计难度。由于关联关系建立在抽象层要求开发者一开始就针对抽象层进行设计与编程正确识别出系统中两个独立变化的维度并不容易。 2、可能增加系统的复杂性。对于一些不希望使用继承或因为多层继承导致系统类的个数剧增的场景可能需要考虑使用桥接模式这会增加系统的复杂性和理解难度。 总之桥接模式虽然可以提高系统的可维护性、可重用性和可扩展性但也增加了系统的复杂性和理解难度。因此在使用桥接模式时需要权衡其优缺点根据实际需求进行选择。 示例 一、C#桥接模式 以下是一个示例展示了如何在C#中实现桥接模式 using System;  namespace BridgePatternExample   {  // 抽象类  public abstract class Abstraction  {  protected Implementor implementor;  public void SetImplementor(Implementor implementor)  {  this.implementor implementor;  }  public abstract void Operation();  }  // 具体实现类  public class ConcreteAbstraction : Abstraction  {  public override void Operation()  {  implementor.Operation();  }  }  // 实现接口  public interface Implementor  {  void Operation();  }  // 具体实现类1  public class ConcreteImplementor1 : Implementor  {  public void Operation()  {  Console.WriteLine(Concrete Implementor 1 operation);  }  }  // 具体实现类2  public class ConcreteImplementor2 : Implementor  {  public void Operation()  {  Console.WriteLine(Concrete Implementor 2 operation);  }  }class Program  {  static void Main(string[] args)  {  Abstraction abstraction new ConcreteAbstraction();  abstraction.SetImplementor(new ConcreteImplementor1()); // 第一个实现类操作  abstraction.Operation(); // 输出 Concrete Implementor 1 operation  abstraction.SetImplementor(new ConcreteImplementor2()); // 第二个实现类操作  abstraction.Operation(); // 输出 Concrete Implementor 2 operation  }   }    } 二、java桥接模式 桥接模式通常通过以下方式实现 // 抽象类   public abstract class AbstractClass {  protected Implementor implementor;  public void setImplementor(Implementor implementor) {  this.implementor implementor;  }  public abstract void operation();   }  // 具体实现类   public class ConcreteClass extends AbstractClass {  Override  public void operation() {  implementor.operation();  }   }  // 实现接口   public interface Implementor {  void operation();   }  // 具体实现类1   public class ConcreteImplementor1 implements Implementor {  Override  public void operation() {  System.out.println(Concrete Implementor 1 operation);  }   }  // 具体实现类2   public class ConcreteImplementor2 implements Implementor {  Override  public void operation() {  System.out.println(Concrete Implementor 2 operation);  }   }//在客户端中创建上下文对象并注入具体策略对象 public class Main {  public static void main(String[] args) {  AbstractClass abstraction new ConcreteClass();  abstraction.setImplementor(new ConcreteImplementor1()); // 第一个实现类操作  abstraction.operation(); // 输出 Concrete Implementor 1 operation  abstraction.setImplementor(new ConcreteImplementor2()); // 第二个实现类操作  abstraction.operation(); // 输出 Concrete Implementor 2 operation} } 三、javascript桥接模式 在JavaScript中桥接实现方式如下 // 抽象类   class AbstractClass {  constructor(bridge) {  this.bridge bridge;  }  operation() {  this.bridge.implementationOperation();  }   }  // 具体实现类   class ConcreteClass1 {  implementationOperation() {  console.log(ConcreteClass1 operation);  }   }  class ConcreteClass2 {  implementationOperation() {  console.log(ConcreteClass2 operation);  }   }  // 桥接类   class BridgeClass extends AbstractClass {  constructor(implementation) {  super(implementation);  }   }const bridge1 new BridgeClass(new ConcreteClass1());   const bridge2 new BridgeClass(new ConcreteClass2());  bridge1.operation(); // 输出 ConcreteClass1 operation   bridge2.operation(); // 输出 ConcreteClass2 operation 四、C桥接模式 以下是在C中实现桥接模式 #include iostream  // 抽象类   class AbstractClass {   public:  virtual void operation() 0;   };  // 具体实现类1   class ConcreteClass1 : public AbstractClass {   public:  void operation() override {  std::cout ConcreteClass1 operation std::endl;  }   };  // 具体实现类2   class ConcreteClass2 : public AbstractClass {   public:  void operation() override {  std::cout ConcreteClass2 operation std::endl;  }   };  // 桥接类   class BridgeClass {   public:  AbstractClass* abstract;  BridgeClass(AbstractClass* a) : abstract(a) {}  void operation() { abstract-operation(); }   };  int main() {  AbstractClass* a new ConcreteClass1(); // 使用具体实现类1创建抽象类的对象  BridgeClass b(a); // 使用桥接类与抽象类的对象进行交互  b.operation(); // 输出 ConcreteClass1 operation  delete a; // 释放内存  a new ConcreteClass2(); // 使用具体实现类2创建抽象类的对象  b.operation(); // 输出 ConcreteClass2 operation  delete a; // 释放内存  return 0;   } 五、python桥接模式 以下是在python中实现桥接模式 from abc import ABC, abstractmethod  # 抽象类   class AbstractClass(ABC):  abstractmethod  def operation(self):  pass  # 具体实现类1   class ConcreteClass1(AbstractClass):  def operation(self):  print(ConcreteClass1 operation)  # 具体实现类2   class ConcreteClass2(AbstractClass):  def operation(self):  print(ConcreteClass2 operation)  # 桥接类   class BridgeClass:  def __init__(self, abstract_class):  self.abstract_class abstract_class  def operation(self):  self.abstract_class.operation()  # 使用示例   bridge1 BridgeClass(ConcreteClass1())   bridge2 BridgeClass(ConcreteClass2())   bridge1.operation() # 输出 ConcreteClass1 operation   bridge2.operation() # 输出 ConcreteClass2 operation 六、go桥接模式 以下是一个示例展示了如何在go中实现桥接模式 package main  import fmt  // 抽象类   type AbstractClass struct {  BridgeClass   }  func (ac *AbstractClass) Operation() {  ac.BridgeClass.Operation()   }  // 具体实现类1   type ConcreteClass1 struct{}  func (cc1 *ConcreteClass1) Operation() {  fmt.Println(ConcreteClass1 operation)   }  // 具体实现类2   type ConcreteClass2 struct{}  func (cc2 *ConcreteClass2) Operation() {  fmt.Println(ConcreteClass2 operation)   }  // 桥接类   type BridgeClass struct {  impl interface{}   }  func (bc *BridgeClass) Operation() {  bc.impl.Operation()   }  func main() {  abstract : AbstractClass{BridgeClass{ConcreteClass1{}}}  abstract.Operation() // 输出 ConcreteClass1 operation  abstract.BridgeClass.impl ConcreteClass2{}  abstract.Operation() // 输出 ConcreteClass2 operation   } 七、PHP桥接模式 以下是一个示例展示了如何在PHP中实现桥接模式 ?php  // 抽象类   abstract class AbstractClass {  protected $bridge;  public function __construct(BridgeClass $bridge) {  $this-bridge $bridge;  }  abstract public function operation();   }  // 具体实现类1   class ConcreteClass1 implements AbstractClass {  public function operation() {  echo ConcreteClass1 operation\n;  }   }  // 具体实现类2   class ConcreteClass2 implements AbstractClass {  public function operation() {  echo ConcreteClass2 operation\n;  }   }  // 桥接类   class BridgeClass {  protected $implementation;  public function __construct(Implementation $implementation) {  $this-implementation $implementation;  }  public function operation() {  $this-implementation-operation();  }   }  // 使用示例   $bridge1 new BridgeClass(new ConcreteClass1());   $bridge2 new BridgeClass(new ConcreteClass2());   $bridge1-operation(); // 输出 ConcreteClass1 operation   $bridge2-operation(); // 输出 ConcreteClass2 operation 《完结》 上一篇《适配器模式》                                                               下一篇《装饰器模式》
http://www.hkea.cn/news/14330828/

相关文章:

  • 潍坊设计网站做网站设计用到的软件
  • wordpress改网站logo做外国网站用什么服务器
  • 手机网站建设+上海游戏网站建设杭州
  • 做网站如何选域名企业信息发布系统
  • 静态做网站网店托管代运营公司
  • 甘肃省环保建设申报网站ps软件入门教程
  • 大学选修课网站建设山西钢铁建设集团有限公司网站
  • godaddy域名买的网站热搜在哪里可以看
  • 做么网站有黄seo整体优化步骤怎么写
  • 网站集约化建设启示和建议免费网站管理系统
  • 网站建设全包公司推荐win7搭建wordpress
  • 重庆快速网站推广wordpress音乐主题pulse
  • 网销的网站建设与管理信用信息查询公示系统
  • 传统网站建设架构什么是百度快照
  • 怎样建设与维护自己的平台网站海南疾控发布问卷调查
  • 网站开发属于什么软件网站后台漏洞
  • 游戏交易网站开发公司建设网站需要什么条件
  • 服装设计以及网页设计素材廊坊seo技巧
  • 买书的网站排名体育评论做的好的网站
  • 南山-网站建设信科网络大数据平台建站
  • 网站建设 jsp php东莞网站建设58
  • 北京自助建站软件网站开发基本流程
  • 手机建站专家深圳app网站
  • 购物网站如何建设网站建设文化渠道
  • 快速开发企业网站一家公司可以做几个网站
  • 荣泰建设集团网站中小企业建站系统
  • 吉安网站公司网站推广策划思路是什么
  • 长垣有做网站设计的吗sem优化师是什么意思
  • 网站转换模块怎么做免费网页域名申请
  • 几何背景生成器网站阿里巴巴国际站怎么网站建设