结构型模式(含适配器模式,桥接模式)
结构型模式是为了将类或者对象结合到一起形成更大的结构
按照构成可以分为类结构型模式(关心类的组合,一般都有继承或者实现关系)和对象结构型模式(关心类和对象的组合。典型的就是在一个类中实例化另一个类的对象然后调用其方法)。
重点说两个重要的模式:
适配器模式:让不兼容的接口或者类(当然接口是特殊的类,但是这里的接口和程序语言有所差异。这里的接口是广义的接口。表示方法的集合)可以一起工作
适配器模式的四种角色:
1:Target(目标抽象类):定义客户所需的接口。在类适配器中,由于主流语言除了C++都不支持多重继承,所以它只能是接口。c++中可以是具体实现类
2:Adapter(适配器类):它可以调用另一个接口,作为一个转换器,对Adaptee和Target进行适配。它是适配器模式的核心。
3:Adaptee(适配者类):适配者即被适配的角色,它定义了一个已经存在的接口,这个接口需要适配,适配者类包好了客户希望的业务方法。
4.Client(客户端):发送请求
类适配器模式
对象适配器模式
双向适配器模式
桥接模式:将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体模式或接口模式。
补充:考试可能会出的脱耦:脱耦就是将抽象化和实现化之间的耦合解脱开,或者说是将它们之间的强关联改换成弱关联,将两个角色之间的继承关系改为关联关系。桥接模式中的所谓脱耦,就是指在一个软件系统的抽象化和实现化之间使用关联关系(组合或者聚合关系)而不是继承关系,从而使两者可以相对独立地变化
桥接模式包括4个角色:
Abstraction:抽象类
RefinedAbstraction:扩充抽象类
Implementor:实现类接口
ConcreteImplementor:具体实现类
类图: