基本解释 :
https://blog.csdn.net/wuyuxiu123/article/details/118458227
https://zhuanlan.zhihu.com/p/58903776
通俗理解:
说白了核心就是在A类中含有B的接口,通过构造函数传递B类的实现,这个B类就是设计的桥。把多个维度的类在一个类中进行整合,通过持有其接口的方式代替实现接口的方式进行,降低耦合性,同时单个维度进行变化的时候不会影响到组合后的对象
组成部件解释:
抽象化(Abstraction)角色:
用来定义组合出来的对象的框架只用来定义骨架!比如我们对冰珍珠奶茶进行抽象 奶茶=添加料(珍珠,布丁,荞麦等)+冲制粉(奶粉,茶粉等)+混合体(牛奶,冰水,热水等)。那么骨架就是奶茶=添加料+冲制粉+混合体,抽象化角色则是用来定义骨架的。抽象类奶茶中持有添加料 ,冲制粉,混合体接口,并且构造函数必须传入这3个参数。
修正抽象化(RefinedAbstraction)角色:
对定义出来的骨架进行功能扩展
实现化(Implementor)角色:
骨架中包含的各个组件的接口详细定义,添加料接口,冲制粉接口,混合体接口等
ConcreteImplementor具体实现类:
就是对上面实现化角色接口的具体实现,珍珠,布丁,奶茶,牛奶等等