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

好姑娘免费高清视频安卓优化大师下载安装

好姑娘免费高清视频,安卓优化大师下载安装,h5页面和小程序的页面有什么区别,常德微网站开发设计模式-桥接模式(Bridge) 一、桥接模式概述1.1 什么是桥接模式1.2 简单实现桥接模式 二、使用桥接模式注意事项三、实现桥接模式的方式3.1 使用继承和组合的方式实现桥接模式3.2 使用接口和内部类的方式实现桥接模式 一、桥接模式概述 1.1 什么是桥接…

设计模式-桥接模式(Bridge)

    • 一、桥接模式概述
      • 1.1 什么是桥接模式
      • 1.2 简单实现桥接模式
    • 二、使用桥接模式注意事项
    • 三、实现桥接模式的方式
      • 3.1 使用继承和组合的方式实现桥接模式
      • 3.2 使用接口和内部类的方式实现桥接模式

一、桥接模式概述

1.1 什么是桥接模式

桥接模式,也被称为柄体(Handle and Body)模式或接口(Interface)模式,是一种桥接模式,也被称为柄体(Handle and Body)模式或接口(Interface)模式,是一种结构型设计模式。它的主要目的是将抽象部分与它的实现部分分离,使它们都可以独立地变化。这种分离可以通过组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。

举个例子,假设有一个几何形状Shape类,从它能扩展出两个子类:圆形Circle和方形Square。你希望对这样的类层次结构进行扩展以使其包含颜色,所以你打算创建名为红色Red和蓝色Blue的形状子类。但是,由于你已有两个子类,所以总共需要创建四个类才能覆盖所有组合,例如蓝色圆形Blue­Circle和红色方形Red­Square。在层次结构中新增形状和颜色将导致代码复杂程度指数增长。在这种情况下,桥接模式就能起到作用,它将形状和颜色解耦,使得两者可以相对独立地变化。

1.2 简单实现桥接模式

桥接模式(Bridge Pattern)是一种结构型设计模式,它通过将抽象部分与实现部分分离,使它们可以独立地变化。下面是一个简单的 Java 实现:

首先,我们创建一个抽象类 Shape,它有一个抽象方法 draw():

public abstract class Shape {public abstract void draw();
}

然后,我们创建两个实现了 Shape 接口的具体类:Circle 和 Square:

public class Circle extends Shape {@Overridepublic void draw() {System.out.println("画一个圆形");}
}public class Square extends Shape {@Overridepublic void draw() {System.out.println("画一个正方形");}
}

接下来,我们创建一个桥接类 Color,它也实现了 Shape 接口,并持有一个 Shape 类型的引用:

public class Color extends Shape {private Shape shape;public Color(Shape shape) {this.shape = shape;}@Overridepublic void draw() {setColor();shape.draw();resetColor();}private void setColor() {System.out.println("设置颜色");}private void resetColor() {System.out.println("重置颜色");}
}

最后,我们在主函数中测试这个桥接模式:

public class Main {public static void main(String[] args) {Shape circle = new Circle();Shape square = new Square();Shape coloredCircle = new Color(circle);Shape coloredSquare = new Color(square);coloredCircle.draw();coloredSquare.draw();}
}

运行结果:

设置颜色
画一个圆形
重置颜色
设置颜色
画一个正方形
重置颜色

二、使用桥接模式注意事项

使用桥接模式时需要注意以下几点:

  • 1、抽象部分和实现部分应该分离,不应该有过多的耦合。
  • 2、桥接模式适用于多个维度的变化,如果只有一两个维度的变化,使用继承会更加简单。
  • 3、桥接模式会增加系统的复杂度,需要谨慎使用。
  • 4、桥接模式要求正确选择和使用抽象类和接口,避免过度抽象或过于具体化。
  • 5、桥接模式的实现需要考虑对象的创建和管理,需要合理设计对象之间的关系和依赖关系。

三、实现桥接模式的方式

3.1 使用继承和组合的方式实现桥接模式

这种方式需要创建两个类,一个作为抽象类,另一个作为具体类。抽象类中定义了对抽象部分和实现部分的引用,具体类中实现了抽象部分的具体逻辑。

// 抽象部分
abstract class Abstraction {protected Implementation implementation;public void setImplementation(Implementation implementation) {this.implementation = implementation;}public abstract void operation();
}// 具体部分
class ConcreteAbstraction extends Abstraction {@Overridepublic void operation() {System.out.println("具体操作");}
}// 实现部分
interface Implementation {void operationImpl();
}class ConcreteImplementationA implements Implementation {@Overridepublic void operationImpl() {System.out.println("实现A的操作");}
}class ConcreteImplementationB implements Implementation {@Overridepublic void operationImpl() {System.out.println("实现B的操作");}
}// 客户端代码
public class Client {public static void main(String[] args) {Abstraction abstraction = new ConcreteAbstraction();Implementation implementationA = new ConcreteImplementationA();Implementation implementationB = new ConcreteImplementationB();abstraction.setImplementation(implementationA);abstraction.operation(); // 输出:具体操作abstraction.setImplementation(implementationB);abstraction.operation(); // 输出:具体操作}
}

3.2 使用接口和内部类的方式实现桥接模式

这种方式需要创建一个接口,一个抽象类和一个内部类。抽象类中定义了对接口的引用,内部类中实现了抽象类的具体逻辑。

// 接口
interface Shape {void draw();
}// 抽象部分
abstract class AbstractShape {protected Shape shape;public void setShape(Shape shape) {this.shape = shape;}public abstract void draw();
}// 具体部分
class Rectangle extends AbstractShape {@Overridepublic void draw() {shape.draw();}
}class Circle extends AbstractShape {@Overridepublic void draw() {shape.draw();}
}// 内部类实现接口
class ShapeImpl implements Shape {@Overridepublic void draw() {System.out.println("绘制形状");}
}// 客户端代码
public class Client {public static void main(String[] args) {AbstractShape abstractShape = new Rectangle();Shape shapeA = new ShapeImpl();Shape shapeB = new ShapeImpl();abstractShape.setShape(shapeA);abstractShape.draw(); // 输出:绘制形状abstractShape.setShape(shapeB);abstractShape.draw(); // 输出:绘制形状}
}
http://www.khdw.cn/news/11121.html

相关文章:

  • 网站建设图书馆管理系统最近一周新闻
  • 做网站用的软件企业官网推广
  • 山东软件开发的公司山东东营网络seo
  • ppt下载免费网站免费网站安全软件下载
  • 网站服务器租用价格表网络营销案例视频
  • wordpress后台经常504石家庄seo关键词排名
  • 推广公司的套路seo技术好的培训机构
  • wordpress 缩略图宁波seo外包推广排名
  • 罗湖商城网站建设哪家效益快百度识图在线网页版
  • 网页设计入门课程整站优化和关键词优化的区别
  • 安卓应用开发教程阜平网站seo
  • 怎样给装修公司做网站seo发贴软件
  • wordpress多站列表seo系统是什么
  • 做网站要做相应的app吗广州seo网络培训课程
  • 站长seo计费系统全国疫情高峰感染进度
  • b2b模式网站百度竞价一个月5000够吗
  • 网站制作需要多少费用成都最新数据消息
  • 高端网站建设 房产长沙优化官网服务
  • 响应式营销型网站建设怎样设计一个网页
  • 云南网app下载信息流优化师是什么
  • 衡水网络推广 衡水网站建设东莞谷歌推广公司
  • 查询数据的网站怎么做的友情链接交换平台免费
  • wordpress vps 伪静态如何优化网站
  • 品牌网站部门建设方案站长工具pr值查询
  • 深圳知名网站建设哪家好深圳关键词推广排名
  • 充值网站怎么做的沈阳seo关键词排名
  • 凡科官方网跨境电商seo什么意思
  • 做钓鱼网站教程视频关键词优化报价
  • 哪些招聘网站做海外招聘新媒体运营师证书
  • 啪啪男女禁做视频网站培训学校怎么招生