首页IT科技java join方法(JAVA设计模式-桥接模式)

java join方法(JAVA设计模式-桥接模式)

时间2025-07-30 21:09:09分类IT科技浏览5308
导读:JAVA设计模式-桥接模式 一、介绍...

JAVA设计模式-桥接模式

一              、介绍

桥接模式是一种结构型模式              ,它主要是将抽象部分和实现部分进行分离                     ,可以独立变化       ,降低类与类之间的耦合度              。

举例:我们现在需要实现不同形状              ,每个形状还要有不同的颜色                     ,我们传统方式是定义一个形状类       ,再定义每一个不同的形状实现类       ,继承上面的形状类                     ,这是形状的需求已经完成              ,接下来我们实现不同形状不同颜色的需求       ,我们需要再定义形状颜色类                     ,继承上面的形状              ,每个形状颜色类定义不同的颜色,此时我们会发现扩展会非常麻烦并且层次非常多                     ,这时我们可以使用桥接模式                     ,将形状和颜色的抽象                     、实现分离开来                     。

二       、参与者

抽象类(Abstraction): 里面包含了一个实现类接口的引用,两者是聚合关系       。 扩充抽象类(RefinedAbstraction): 是抽象类的子类              ,实现父类中的方法              。 实现类接口(Implementor): 定义基本操作                     ,抽象类是定义了基于基本操作的较高层次的操作                     。 具体实现类(ConcreteImplementor): 实现Implementor接口       ,并定义具体的实现操作       。 客户端(Client): 调用者

三       、类图

四                     、具体实现

Abstraction类 /** * All rights Reserved, Designed By monkey.blog.xpyvip.top * * @version V1.0 * @Package com.xpyvip.designpattern.bridging * @Description: 抽象类 * @Author: xpy * @Date: Created in 2022年10月18日 10:54 下午 */ public abstract class Shape { Color color; public void setColor(Color color) { this.color = color; } public abstract void draw(); } RefinedAbstraction类 /** * All rights Reserved, Designed By monkey.blog.xpyvip.top * * @version V1.0 * @Package com.xpyvip.designpattern.bridging * @Description: 长方形 * @Author: xpy * @Date: Created in 2022年10月18日 10:57 下午 */ public class Rectangle extends Shape{ @Override public void draw() { color.paint("长方形"); } } /** * All rights Reserved, Designed By monkey.blog.xpyvip.top * * @version V1.0 * @Package com.xpyvip.designpattern.bridging * @Description: 圆形 * @Author: xpy * @Date: Created in 2022年10月18日 10:57 下午 */ public class Circular extends Shape{ @Override public void draw() { color.paint("圆形"); } } Implementor类 /** * All rights Reserved, Designed By monkey.blog.xpyvip.top * * @version V1.0 * @Package com.xpyvip.designpattern.bridging * @Description: 实现类接口 * @Author: xpy * @Date: Created in 2022年10月18日 10:54 下午 */ public interface Color { void paint(String shape); } ConcreteImplementor类 /** * All rights Reserved, Designed By monkey.blog.xpyvip.top * * @version V1.0 * @Package com.xpyvip.designpattern.bridging * @Description: 红色 * @Author: xpy * @Date: Created in 2022年10月18日 10:59 下午 */ public class RedColor implements Color{ public void paint(String shape) { System.out.println("红色的" + shape); } } /** * All rights Reserved, Designed By monkey.blog.xpyvip.top * * @version V1.0 * @Package com.xpyvip.designpattern.bridging * @Description: 黄色 * @Author: xpy * @Date: Created in 2022年10月18日 10:59 下午 */ public class YellowColor implements Color{ public void paint(String shape) { System.out.println("黄色的" + shape); } }

Client类

/** * All rights Reserved, Designed By monkey.blog.xpyvip.top * * @version V1.0 * @Package com.xpyvip.designpattern.bridging * @Description: 客户端 * @Author: xpy * @Date: Created in 2022年10月18日 11:00 下午 */ public class Client { public static void main(String[] args) { RedColor redColor = new RedColor(); YellowColor yellowColor = new YellowColor(); Shape shape = new Rectangle(); shape.setColor(redColor); shape.draw(); shape.setColor(yellowColor); shape.draw(); shape = new Circular(); shape.setColor(redColor); shape.draw(); shape.setColor(yellowColor); shape.draw(); } }

总结

优点: 抽象和实现进行了分离              ,降低了耦合度 提高了可扩展性 缺点: 增加了系统的理解和设计的难度                     ,对开发者要求提高       。 需要对需求可以正确分辨出两个独立变化的维度       ,不是所有需求都可以适用       ,有局限性                     。

原文链接:https://monkey.blog.xpyvip.top/archives/java-she-ji-mo-shi---qiao-jie-mo-shi

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
vue在线聊天(vue:聊天对话框的实现) 微信小程序控制图片大小(uniapp微信小程序图片裁剪插件,支持自定义尺寸、定点等比例缩放、拖动、图片翻转、剪切圆形/圆角图片、定制样式)