社区
Java
帖子详情
关于桥接与策略的区别
sdhls
2004-03-15 11:19:19
俺怎么感觉到这两种模式一样的,说句不知天高地厚的话,我觉得很有几个模式都是大同小异的,哪位高手点拨一二,先谢了
...全文
542
4
打赏
收藏
关于桥接与策略的区别
俺怎么感觉到这两种模式一样的,说句不知天高地厚的话,我觉得很有几个模式都是大同小异的,哪位高手点拨一二,先谢了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xuzhenhua21
2004-03-27
打赏
举报
回复
mark一下吧
sdhls
2004-03-16
打赏
举报
回复
二位果然高手,佩服!肯定都是久经沙场了。羡慕!暂时只好努力读书了!
peakpanda
2004-03-16
打赏
举报
回复
strategy模式是为了扩展和修改,并提供动态配置。它往往可以在同一环境当中使用不同的策略,就是调用不同的派生类。其内部实现是自由的,不受已有的类接口的限制(很多时候根本就不调用现成的接口)。
bridge模式是往往是为了利用已有的方法或类。它将原来不统一,不兼容的接口封装起来,变成统一的接口。它的应用往往是不同的环境或平台下只能选择一种,比如说在windows平台下只能用WinClass,而在unix平台下只能用UnixClass.它的主要作用不是配置而是定义通用接口。
据个例子来说:我要画园,要实心园,我可以用SolidPen来配置,画虚线园可以用dashedPen来配置。这是strategy模式。
而同样是画园,我是在windows下来画实心园,就用windowPen+solidPen来配置,在unix下画实心园就用unixPen+solidPen来配置。如果要再windows下画虚线园,就用windowsPen+dashedPen来配置,要在unix下画虚线园,就用unixPen+dashedPen来配置。
我这里仅仅是就一种情况来说strategy和bridge的组合应用,其他的组合可能性随环境变化而多种多样。从中可以看出,bridge和strategy是可能组合使用,侧重不同方面的。
模式某种角度上来讲就是对象组合。不要看他们都是对象组合就好像是一样的。模式的动机,意图,使用场合,组合方式,这些都是模式的一部分。其中细微的不同足以区分不同的模式。
defstu
2004-03-15
打赏
举报
回复
这是因为设计模式的划分更多的是面对问题域而不是面对实现方式
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
实际上所有模式可以只分为类模式和对象模式两种,类模式是用继承而对象模式是用委托
Bridge模式和Strategy模式相似就是因为他们都将任务委托给了另外一个接口的具体实现,
他们之间的区别在于Bridge的目的是让底层实现和上层接口可以分别演化,从而提高移植性
而Strategy的目的是将复杂的算法封装起来,从而便于替换不同的算法。
因此可以想象一般情况下Bridge的实现几乎不会在运行时更改而Strategy的算法则很有可能
需要在运行时更换,这就导致在细节方面需要考虑的因素可能会很不相同。
策略
模式与
桥接
模式
区别
参考:https://www.phpmianshi.com/?id=65 实际上所有模式可以只分为类模式和对象模式两种,类模式是用继承而对象模式是用委托。 Bridge模式和Strategy模式相似就是因为他们都将任务委托给了另外一个接口的具体实现,他们之间的
区别
在于Bridge的目的是让底层实现和上层接口可以分别演化,从而提高移植性而Strategy的目的是将复杂的算法封装起来,从而便于替换不同的算法。因此可以想象一般情况下Bridge的实现几乎不会在运行时更改而Strategy的算法则很有可能.
桥接
模式和
策略
模式的
区别
学习的过程中发现这两个概念真的是有点区分不开,尽管可以很感性的说bridge模式要比strategy模式更复杂更具可塑性,更“高级”,但是如何清晰阐述两者
区别
,却实是有点困难。 套用伟人的一句话,站在巨人的肩膀上看得更远,下边三段分别来自CSDN论坛的贴子和一篇blogjava的文章,看了之后令我茅塞顿开,为表尊重不在冗述,直接贴原文了。 实际上所有模式可以只分为类模式和对象模式两种,类模式是用继...
桥接
模式与
策略
模式的
区别
文章转载自:http://www.blogjava.net/wangle/archive/2007/04/25/113545.html
桥接
(Bridge)模式是结构型模式的一种,而
策略
(strategy)模式则属于行为模式。以下是它们的UML结构图。 在
桥接
模式中,Abstraction通过聚合的方式引用Implementor。 在
策略
模式中,Context也使用聚合的方式引用Startegy抽象接口。 从他们的结构图可知,在这两种模式中,都存在一个对象使用聚合的方式引用另一个..
桥接
模式和
策略
模式的
区别
,以及代码示例
- 相同点 - 都是对象的设计模式,关注于对象之间的通信 - 都可以通过组合的方式来实现功能的扩展 - 都可以在运行时动态地改变对象得行为 - 不同点 -
桥接
模式关注于对象间的组合,而
策略
模式关注于算法的替换 -
桥接
模式将抽象部分和实现部分分离,是他们可以独立变换,而
策略
模式将算法封装成一个个独立的类,使他们可以互相替换 -
桥接
模式的实现需要额外的抽象层,而
策略
模式的实现不需要 因此,
桥接
模式不能被
策略
模式代替,因为
桥接
模式关注于对象间的组合,而
策略
模式关注于算法的替换,两者
Java
51,408
社区成员
86,101
社区内容
发帖
与我相关
我的任务
Java
Java相关技术讨论
复制链接
扫一扫
分享
社区描述
Java相关技术讨论
java
spring boot
spring cloud
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章