Ali*_*Ali 18 java abstraction design-patterns bridge
我从不同的文章中学习了Bridge模式,并且按照我的理解实现了它.令我困惑的一件事是桥模式说
BridgePattern将抽象与其实现分离,以便两者可以独立变化
这个陈述的含义是什么?实现是在单独的jar中吗?
什么是独立声明的含义?
考虑提供的journaldev文章,详细说明答案.
任何帮助是极大的赞赏.
Rav*_*abu 28
BridgePattern将抽象与其实现分离.
抽象和实现可以独立变化,因为具体类不直接实现抽象(接口)
注意: 两个正交的类层次结构(抽象层次结构和实现层次结构)使用组合(而不是继承)进行链接.此组合有助于两个层次结构独立变化.
实现永远不会引用抽象.抽象包含实现接口作为成员(通过组合).
回到你关于journaldev文章中的示例代码的问题:
形状是抽象
三角形是RedefinedAbstraction
颜色是执行者
RedColor是ConcreteImplementor
具体的Shape对象:Triangle扩展Shape但不实现Color接口.
public class Triangle extends Shape{
}
Run Code Online (Sandbox Code Playgroud)
RedColor和绿彩实际实现彩色界面.
Concrete Shape对象(Triangle)独立于实现抽象(即Color接口).
Shape tri = new Triangle(new RedColor());
Run Code Online (Sandbox Code Playgroud)
这里Triangle包含一个具体的Color对象(Composition).如果在改变颜色抽象(接口),RedColor和绿彩负责实施的抽象色彩的界面.
像Triangle这样的形状不受Color接口合约变化的影响.因此,Color界面可以独立变化.这是可能的,因为Shape持有使用Composition而不是实现的契约.
综上所述,
在以下情况下使用Bridge模式:
有用的链接:
tutorialspoint artice
dzone文章
oodesign文章
源文章
相关文章:
小智 5
该语句只是意味着,您可以在运行时切换到抽象所指向的实现者,并且所有事情都应该起作用(就像在策略模式中一样;但是在策略模式中,只有策略是抽象的)。也可以理解为将两个类分开,这样它们就不必只知道它们的接口而彼此了解。