- 浏览: 194403 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
only_java:
博主,你好。感谢这篇你的这篇文章,我的问题是跟你一样,也是在跑 ...
JVM Crash分析 -
shuofenglxy:
1 确保程序运行时没有更新程序需要的相关jar包。2 确保程序 ...
JVM Crash分析 -
renduly:
# A fatal error has been detect ...
JVM Crash分析 -
shuofenglxy:
renduly 写道博主好。这两天我在公司程序也出现了类似的问 ...
JVM Crash分析 -
renduly:
博主好。这两天我在公司程序也出现了类似的问题。博主能否说的详细 ...
JVM Crash分析
桥接模式将抽象部分与具体实现分离,使得都能独立的变化。它采用注入实现的方式来实现解耦的,而通常注入的行为只是被注入者行为的一部分。桥接模式也是一种结构型设计模式。
桥接模式类图:
具体示例demo:
抽象消息
具体消息1:
具体消息2:
消息发送接口:
具体发送方式1:
具体发送方式2:
测试类:
说明:如果不采用桥接模式,可能就需要给每一种消息都要写不同的消息发送类型了,其实策略模式和桥接模式区别并不是十分大,往往大多数场合都有多种设计模式方式可以采用,设计模式的目的只是为了更好的解耦。
桥接模式类图:
具体示例demo:
抽象消息
package bridgePattern; public abstract class AbstractMessage { private MessageSending messageSending; private String msgContent; private String toUserName; public AbstractMessage(String msgContent, String toUserName, MessageSending messageSending){ this.messageSending = messageSending; } public abstract void messageAction(String msgContent, String toUserName, MessageSending messageSending); }
具体消息1:
package bridgePattern; public class NormalMessage extends AbstractMessage{ public NormalMessage(String msgContent, String toUserName, MessageSending messageSending) { super(msgContent, toUserName, messageSending); // TODO Auto-generated constructor stub } public void messageAction(String msgContent, String toUserName, MessageSending messageSending) { System.out.println("This is a normal message,send it as normal level"); messageSending.sendMessage(msgContent, toUserName); } }
具体消息2:
package bridgePattern; public class UrgentMessage extends AbstractMessage{ public UrgentMessage(String msgContent, String toUserName, MessageSending messageSending) { super(msgContent, toUserName, messageSending); // TODO Auto-generated constructor stub } public void messageAction(String msgContent, String toUserName, MessageSending messageSending) { System.out.println("This is a urgent message,send it as urgent level"); messageSending.sendMessage(msgContent, toUserName); } }
消息发送接口:
package bridgePattern; public interface MessageSending { void sendMessage(String msgContent,String toUserName); }
具体发送方式1:
package bridgePattern; public class EmailMessageSending implements MessageSending{ public void sendMessage(String msgContent, String toUserName) { System.out.println("Send "+msgContent+" "+toUserName+" " +"by EmailMessageSending"); } }
具体发送方式2:
package bridgePattern; public class WangwangMessageSending implements MessageSending{ public void sendMessage(String msgContent, String toUserName) { System.out.println("Send "+msgContent+" "+toUserName+" " +"by WangwangMessageSending"); } }
测试类:
package bridgePattern; public class BridgeTest { public static void main(String[] args){ MessageSending messageSending = new WangwangMessageSending(); MessageSending messageSending2 = new EmailMessageSending(); AbstractMessage message = new NormalMessage("hello,world", "lxy",messageSending); message.messageAction("hello,world", "lxy", messageSending); AbstractMessage message2 = new NormalMessage("hello,world", "lxy",messageSending2); message2.messageAction("hello,world", "lxy", messageSending2); AbstractMessage message3 = new UrgentMessage("hello,world", "lxy",messageSending); message3.messageAction("hello,world", "lxy", messageSending); AbstractMessage message4 = new UrgentMessage("hello,world", "lxy",messageSending2); message4.messageAction("hello,world", "lxy", messageSending2); } }
说明:如果不采用桥接模式,可能就需要给每一种消息都要写不同的消息发送类型了,其实策略模式和桥接模式区别并不是十分大,往往大多数场合都有多种设计模式方式可以采用,设计模式的目的只是为了更好的解耦。
发表评论
-
菜鸟硕枫设计模式系列之25 设计模式5大原则
2010-12-09 18:56 1452开闭原则(Open-Closed Principle): 对扩 ... -
菜鸟硕枫设计模式系列之24 访问者模式
2010-12-09 18:55 939visit pattern是一种行为模式。主要特点是一个可遍历 ... -
菜鸟硕枫设计模式系列之23 模版方法模式
2010-12-09 18:50 1314模版方法模式用来稳定 ... -
菜鸟硕枫设计模式系列之22 策略模式
2010-12-09 18:44 1211策略模式是设计模式中比较简单的一种模式,主要是针对某一特定问题 ... -
菜鸟硕枫设计模式系列之21 状态模式
2010-12-09 18:40 1252避免了复杂的条件;取而代之以状态对象。优势在于允许对象改变内部 ... -
菜鸟硕枫设计模式系列之20 观察者模式
2010-12-09 18:36 1501观察者模式是设计模式中非常重要的设计模式之一。主要特点是,向要 ... -
菜鸟硕枫设计模式系列之19 备忘录模式
2010-12-09 18:31 1312memoto pattern是一种保存对象以前状态的一种行为模 ... -
菜鸟硕枫设计模式系列之18 中介者模式
2010-12-09 18:25 1256中介者模式,”中介者“,即在一系列系统交互的过程中,通过第三方 ... -
菜鸟硕枫设计模式系列之17 迭代器模式
2010-12-09 18:19 1023迭代器模式是一种行为模式。提供了一种顺序访问聚集中每个元素的办 ... -
菜鸟硕枫设计模式系列之16 解释器模式
2010-12-09 18:13 1280解释器模式是一种行为模式。主要方法就是形成一个解释语法树,然后 ... -
菜鸟硕枫设计模式系列之15 命令模式
2010-12-09 18:07 1208命令模式是一种行为模 ... -
菜鸟硕枫设计模式系列之14 职责链模式
2010-12-09 18:01 1421职责链模式是保证一个事件一定能够被处理的一种模式。比如:一个c ... -
菜鸟硕枫设计模式系列之13 代理模式二(动态代理)
2010-12-09 16:36 1387java中的动态代理都需要 ... -
菜鸟硕枫设计模式系列之12 代理模式一
2010-12-09 16:31 1451代理模式貌似是java中用途最广的设计模式之一,也是最重要的设 ... -
菜鸟硕枫设计模式系列之11 外观模式
2010-12-09 16:06 1214外观模式,一种封装底层实现的模式。使得调用者不用关心谁去具体的 ... -
菜鸟硕枫设计模式系列之10 装饰模式
2010-12-09 15:59 1091装饰模式是对对象功能的扩展的一种模式,好处在于不更改原有对象的 ... -
菜鸟硕枫设计模式系列之9 组合模式
2010-12-09 14:49 1264组合模式,顾名思义,采用了组合的方式,使得简单的对象可以组合成 ... -
菜鸟硕枫设计模式系列之7 适配器模式
2010-12-09 14:30 1084适配器模式,正如适配器这个名字一样,起一个转换的作用。目的是通 ... -
菜鸟硕枫设计模式系列之6 建造者模式
2010-12-09 14:24 1374建造者模式是设计模式中另一个重要的创建对象的方法模式。它的特点 ... -
菜鸟硕枫设计模式系列之5 原型模式
2010-12-09 14:17 1171原型模式比较简单,就是利用object中的clone()方法做 ...
相关推荐
本资源“设计模式学习经典篇之菜鸟篇”旨在为初学者提供一个全面而通俗易懂的设计模式学习路径。 设计模式的核心在于重用已验证的解决方案,以提高代码的可读性、可维护性和可扩展性。根据GOF(Gamma, Helm, ...
结构型设计模式如适配器模式、桥接模式、装饰器模式、组合模式、外观模式、享元模式和代理模式,这些模式主要处理对象的组合和结构,提高代码的复用性和模块化。行为型设计模式如观察者模式、命令模式、解释器模式、...
设计模式是软件工程中的一种最佳实践,用于解决在软件开发过程中常见的问题,提供了一套可重用的解决方案。这些模式都是经验丰富的软件开发者在长期实践中总结出来的,它们可以帮助我们写出更加灵活、可维护和可扩展...
代码可以运行,下载这个后,建议买->《大话设计模式这本书》。来辅助学习。有很多关于C#语言有关的设计模式分别由: 1、模板方法模式 2、外观模式 3、建造者模式 4、观察者模式 5、抽象工厂模式 6、状态模式 7、...
在软件开发过程中,设计模式是提升代码可维护性、可扩展性和可重用性的关键工具。本资源包含的"C#23种设计模式【完整】(亲测可用)"涵盖了软件设计中的经典模式,这些模式都是经过实践检验的有效解决方案,旨在帮助...
在软件工程领域,设计模式是解决特定问题的模板或指南,它们被广泛应用于软件开发过程中,以提高代码的可读性、可维护性和重用性。以下是对23种常见软件设计模式的简述,这些模式可以大致分为三类:创建型模式、结构...
总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式...
桥接模式 行为模式 观察者模式 模板方法模式 策略模式 命令模式 调停者模式 备忘录模式 解释器模式 迭代器模式 状态模式 责任链模式 访问者模式 结构与算法 基础概念 稀疏数组与二维数组 队列和栈结构 单向链表和...
设计模式是软件工程中一套被广泛认可的最佳实践和解决方案模板。它们为程序员提供了一种方法,以应对软件设计和架构中反复出现的问题。设计模式按其意图和应用领域可以分为三大类:创建型模式、结构型模式和行为型...
使用哪种设计模式改进较好?如何改进? 4) 某书店需要开发一套图书购销存软件。在设计图书类时发现:图书有单行本和成套的,又细分成教辅材料、科学知识、文学著作等。设计时,希望能够以一致的方式访问各种图书,...
24种设计模式是解决软件开发中常见问题的通用解决方案,分为创建型、结构型和行为型三大类: 1. 创建型模式:单例(Singleton)、工厂方法(Factory Method)、抽象工厂(Abstract Factory)、建造者(Builder)、...
Log4J 2支持多种布局模式,如PatternLayout和XMLLayout,可以方便地调整输出格式。此外,它还引入了配置文件(如log4j2.xml或log4j2.json),允许开发者通过配置文件灵活控制日志级别、输出目的地等。 SLF4J,全称...