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

淘客推广软件山西seo谷歌关键词优化工具

淘客推广软件,山西seo谷歌关键词优化工具,网站设计平台 动易,展示型网站案例概叙:桥接模式用一种巧妙的方式处理多层继承存在的问题, 用抽象关联取代了传统的多层继承, 将类之间的静态继承关系转换为动态的对象组合关系, 使得系统更加灵活,并易于扩展, 同时有效控制了系统中类的个数…

概叙:桥接模式用一种巧妙的方式处理多层继承存在的问题,
用抽象关联取代了传统的多层继承,
将类之间的静态继承关系转换为动态的对象组合关系,
使得系统更加灵活,并易于扩展,
同时有效控制了系统中类的个数,桥接定义如下:

桥接模式:将抽象部分与它实现的部分分离,使它们都可用独立地变化。
它是一种对象结构模式,又称柄体模式(Handle and Body)或接口模式.

桥接模式的结构与其名称一样,存在一条连接两个继承等级结构的桥,

举例:

让我们通过一个更简单的例子来更深入地理解桥接设计模式以及它是如何解决问题的。考虑一个图形绘制的场景,有两个维度的变化:形状和颜色。在没有桥接模式的情况下,可能会考虑创建形状的子类和颜色的子类,然后通过组合它们来得到所有可能的组合。这会导致类的爆炸,因为每个形状都需要与每种颜色组合一次。

不使用桥接模式的情况:

// 不使用桥接模式的代码
class CircleRed extends Circle {@Overridepublic void draw() {System.out.println("Drawing red circle");}
}class CircleGreen extends Circle {@Overridepublic void draw() {System.out.println("Drawing green circle");}
}class RectangleRed extends Rectangle {@Overridepublic void draw() {System.out.println("Drawing red rectangle");}
}class RectangleGreen extends Rectangle {@Overridepublic void draw() {System.out.println("Drawing green rectangle");}
}// 客户端代码
public class WithoutBridgePatternExample {public static void main(String[] args) {CircleRed redCircle = new CircleRed();redCircle.draw(); // Drawing red circleCircleGreen greenCircle = new CircleGreen();greenCircle.draw(); // Drawing green circleRectangleRed redRectangle = new RectangleRed();redRectangle.draw(); // Drawing red rectangleRectangleGreen greenRectangle = new RectangleGreen();greenRectangle.draw(); // Drawing green rectangle}
}

上述代码存在的问题是,每增加一种形状或颜色的组合,都需要创建一个新的子类,导致类的数量呈指数级增长。

使用桥接模式的情况:

现在,我们使用桥接模式来解决这个问题:

// 使用桥接模式的代码
interface Color {void applyColor();
}class Red implements Color {@Overridepublic void applyColor() {System.out.println("Applying red color");}
}class Green implements Color {@Overridepublic void applyColor() {System.out.println("Applying green color");}
}abstract class Shape {protected Color color;public Shape(Color color) {this.color = color;}abstract void draw();
}class Circle extends Shape {public Circle(Color color) {super(color);}@Overridevoid draw() {System.out.print("Drawing circle: ");color.applyColor();}
}class Rectangle extends Shape {public Rectangle(Color color) {super(color);}@Overridevoid draw() {System.out.print("Drawing rectangle: ");color.applyColor();}
}// 客户端代码
public class WithBridgePatternExample {public static void main(String[] args) {Shape redCircle = new Circle(new Red());redCircle.draw(); // Drawing circle: Applying red colorShape greenRectangle = new Rectangle(new Green());greenRectangle.draw(); // Drawing rectangle: Applying green color}
}

在这个例子中,通过使用桥接模式,我们将形状(CircleRectangle)和颜色(RedGreen)分离开来。这样,每个维度的变化都可以独立进行扩展,而不需要创建大量的子类。如果需要新增一种颜色或形状,只需添加相应的类即可,不会导致类的爆炸。桥接模式使得系统更加灵活,易于扩展和维护。

比如新增一个颜色后的代码

假设我们要新增一种颜色,比如蓝色(Blue),我们只需添加一个实现Color接口的Blue类,并在客户端中创建一个新的Shape对象,将这个新的颜色传递给它。

// 新增的蓝色类
class Blue implements Color {@Overridepublic void applyColor() {System.out.println("Applying blue color");}
}// 在客户端中使用新增的蓝色
public class AddNewColorExample {public static void main(String[] args) {Shape blueCircle = new Circle(new Blue());blueCircle.draw(); // Drawing circle: Applying blue color}
}

这里我们无需修改之前的形状类(Circle)或其他颜色类,而是通过新增一个实现Color接口的类来添加新的颜色。这就是桥接模式的灵活性体现之处。新增一个颜色并不会影响到其他部分的代码,保持了系统的可扩展性。


http://www.tj-hxxt.cn/news/73246.html

相关文章:

  • 下面哪一项不属于网络营销方式北京官网优化公司
  • 门窗网站制作宣传语最近的时事新闻
  • 杭州网站建设培训班香飘飘奶茶软文
  • 六合哪家做网站建设google搜索引擎优化
  • windows和linux 做网站网站优化公司认准乐云seo
  • 建设行业最新资讯动态网站seo网站快速排名外包
  • 东莞网站推广策划合肥百度快照优化排名
  • 外贸做的好的网站长沙seo推广优化
  • 谁有凡科网做的网站宁德seo公司
  • 网站一般的后台淘宝关键词工具
  • 网站页脚需要放什么google推广 的效果
  • 聊城哪有做网站的电商代运营一般收多少服务费
  • 无障碍 网站 怎么做合肥头条今日头条新闻最新消息
  • 淘宝运营培训课程靠谱吗我是seo关键词
  • id怎么转wordpress搜索引擎优化网页
  • 做电影网站要买什么雅虎日本新闻
  • 做一个介绍网站多少钱2345软件为什么没人管
  • 谷哇网站建设网站一键收录
  • 艺术类 网站建设方案足球世界排名
  • 外贸网站推广建站徐州seo排名公司
  • 宁波公司核名网站站长工具ip地址查询域名
  • html做动态网站步骤与代码自建站
  • html视频网站源码百度指数名词解释
  • 自贡网站制作附近电脑培训班零基础
  • 微信公众号上微做网站抖音搜索seo代理
  • 做公众号的网站有哪些八戒
  • 政务网站的建设时期的概述南宁关键词优化服务
  • 网站建设好不好深圳最新通告今天
  • 做网站用采集中国互联网电视app下载安装
  • 新型网络营销方式宁波如何做seo排名优化