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

设计类网站推荐及介绍网站推广教程分享

设计类网站推荐及介绍,网站推广教程分享,重庆定制网站建设公司,丽水市网站建设概念: 桥接模式是一种结构型设计模式,它将抽象和实现分离,使它们可以独立地变化。通过使用桥接模式,可以将一个类的抽象部分与其具体实现部分解耦,并且可以在运行时动态地选择不同的实现。 特点: 将抽象…

概念

桥接模式是一种结构型设计模式,它将抽象和实现分离,使它们可以独立地变化。通过使用桥接模式,可以将一个类的抽象部分与其具体实现部分解耦,并且可以在运行时动态地选择不同的实现。

特点

  1. 将抽象和实现分离,使它们可以独立变化。
  2. 通过组合而不是继承来连接抽象和实现。
  3. 提高了系统的可扩展性、灵活性和可维护性。

优点

  1. 解耦了抽象和具体实现,使得二者能够独立进行扩展。
  2. 提供了更好的灵活性,在运行时能够动态地切换或替换具体实现。
  3. 对于客户端来说,隐藏了底层的细节。

缺点

  1. 增加了系统复杂度,需要额外创建多个类以及相应的关联关系。
  2. 在某些情况下可能会导致过度设计。

适用场景

  1. 当一个类存在两个或多个独立变化的维度时(例如颜色与形状),并且希望避免使用大量子类组合时。
  2. 当需要在运行时动态选择不同的具体实现时。
  3. 当希望将抽象和实现部分分离,以便独立进行扩展和修改时。

实现方式

抽象化(Abstraction)角色通过一个成员变量持有具体实施者(Concrete Implementor)角色的引用。这个成员变量充当了抽象化角色和具体实施者角色之间的桥梁。通过将抽象化角色和具体实施者角色解耦,使得它们可以独立地进行扩展和修改。

实现代码:

// 实施者接口(Implementor)
interface DrawingAPI {void drawCircle(double x, double y, double radius);
}// 具体实施者类(Concrete Implementor)实现实施者接口
class DrawingAPI1 implements DrawingAPI {@Overridepublic void drawCircle(double x, double y, double radius) {System.out.printf("Drawing Circle[ API 1 ]: (%f,%f) with radius %f\n", x, y, radius);}
}class DrawingAPI2 implements DrawingAPI {@Overridepublic void drawCircle(double x, double y, double radius) {System.out.printf("Drawing Circle[ API 2 ]: (%f,%f) with radius %f\n", x, y, radius);}
}// 抽象化类(Abstraction)
abstract class Shape {protected DrawingAPI drawingAPI;protected Shape(DrawingAPI drawingAPI) {this.drawingAPI = drawingAPI;}public abstract void draw();
}// 扩展抽象化类(Refined Abstraction)
class CircleShape extends Shape {private double x, y, radius;public CircleShape(double x, double y, double radius, DrawingAPI drawingAPI) {super(drawingAPI);this.x = x;this.y = y;this.radius = radius;}@Overridepublic void draw() {drawingAPI.drawCircle(x, y, radius);}
}public class Main {public static void main(String[] args) {Shape redCircle = new CircleShape(100.0f, 100.0f, 10.0f,new DrawingAPI1());Shape greenCircle = new CircleShape(200.0f, 200.0f, 20.0f,new DrawingAPI1());redCircle.draw();greenCircle.draw();}
}

在上述示例中,我们定义了一个接口 DrawingApi 来表示实施者的行为,并有两个具体实现类 DrawingApi1  DrawingApi2。然后,我们创建了一个抽象类 Shape,它包含一个成员变量 drawingApi 来持有具体实施者的引用,并提供了一个抽象方法 draw()。最后,我们创建了扩展抽象化的子类 CircleShape,它通过调用 drawingApi 的方法来实现具体的绘制逻辑。

在主函数中,我们创建了两个不同颜色的圆形对象,并调用它们的 draw() 方法来进行绘制。由于抽象化角色和具体实施者角色解耦,我们可以轻松地切换不同的具体实施者类来改变绘制效果。

存在问题:

  1. 桥接模式增加了额外的类和关联关系,导致系统复杂度增加。
  2. 如果只有少量的维度需要进行分离,则使用桥接模式可能会显得过于冗余。

http://www.yayakq.cn/news/913971/

相关文章:

  • 科技网站有哪些wordpress 语法
  • 老网站文章突然无收录网站开发网络公司兼职
  • 网站建设前需求调研表大学生创新创业ppt成品
  • drupal 网站开发网站建设的主要流程
  • html网站开发实验报告有没有做美食的小视频网站
  • 哪里网站开发好建行网点
  • 开发设计移动网站建设网站开发用什么语言写
  • 网站建设升级的必要性免费网站推广咱们做
  • 无限空间 网站手机系统优化软件哪个好
  • html5导航网站源码国外做图标网站
  • 免费下载模板的网站有哪些有做火币网这种网站的吗
  • 推荐一个代做毕业设计的网站怎样可以查看网站是由哪个公司做的
  • 网站建设合集网站推广的主要方法有哪些
  • 微信营销软件网站建设网站后台忘了
  • 门户网站建设报价传到网站根目录
  • 留言网站建设济南网站开发
  • 网站开发的简易步骤西安网站漏洞
  • 网站开发技术简介张家港市规划建设网站
  • 网站注册信息查询如何建立简单网站
  • 网站空间如何使用wordpress 苏醒
  • 成都网站制作系统网站建设评价
  • 网站三个月没排名黑科技引流推广神器怎么下载
  • 网站长尾词怎么做网站怎样多语言
  • 海外网站优化建设校园网站的好处
  • 敦煌壁画网站开发毕设论文wordpress的链接怎么设置
  • 汕头门户网站广州设计公司排行榜
  • 旅行社网站建设设计公司哪家好网站建设取得实效
  • wordpress get post id贵阳网站搜索优化
  • 网站建设部署济南哪里有做网站的公司
  • 网站开发前如何配置电脑国外免费网站空间