[Design] Bridge Pattern
结构模式
结构模式描述如何将类或者类的对象结合在一起形成更大的结构。
结构模式描述两种不同的东西:类与类的实例。结构模式可以分为:类的结构模式和对象的结构模式两种。
类的结构模式:类的结构模式使用继承来把类、接口等组合在一起,以形成更大的结构。类的结构模式是静态的,比如类形式的适配器模式。
对象的结构模式:对象的结构模式描述怎么样把不同类型的对象组合在一起,以实现新的功能的方法。对象的结构模式是动态的。比如代理人模式。
--------------------------------------------------------------------------------------
桥梁(Bridge)模式
桥梁模式是对象的结构模式,又称为柄体模式或接口模式。( ABeen 更喜欢柄体模式这名,更形象的表达其意图)。抽象化角化就像是一个水杯的手柄,而实现化角色和具体实现化角色就像是水杯的杯身。手柄控制杯身,由此得名“柄体模式”。
桥梁模式的用意是将抽象化和实现化脱藕,使得二者可以独立地变化。
桥梁模式所谓的脱藕,实际上指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使这两者可以相对独立的变化。桥梁模式多用在抽象部分和实现部分都多变的情况下。桥梁模式很好的符合开闭原则和组合复用原则。
桥梁模式结构
1. 抽象化角色
抽象化给出的定义,并保存一个对实现化对象的引用。
2. 修正抽象化角色
扩展抽象化角色,改变和修正父类对抽象化的定义。
3. 实现化角色
给出实现化角色的接口,必须指出的是这个接口不一定和抽象化角色的接口定义相同,这两个接口可以非常不一样。实现化应当只给出底层操作接口,而抽象化角色应当只给出基于底层操作的更高一层的操作。
4. 具体实现化角色
给出实现化角色接品的具体实现。