结构型模式

外观模式

为子系统对外提供的一组接口提供一个统一的界面,使得其他系统对该系统的访都通过这个统一的界面完成,可以隐藏底层实现,方便调用和维护。

包括一个接口类,用来暴露给外界,和一个具体实现类,用来封装具体实现

 

适配器模式

对于多个系统的对接情况,可能因为历史遗留问题造成双方接口不匹配,这时就可以使用适配器模式进行一个转接

 

包括三个部分:目标类,源类和适配器类

 

代理模式

给一个对象提供一个代理对象,代理对象控制对原对象的引用,使代理类在客户端和原对象中间起到一个中介的作用

 

包括三个部分,一个被代理对象的抽象接口,一个被代理对象的具体类,一个继承抽象接口的代理类,代理类有一个私有成员指向一个具体类实例,代理类实现的抽象方法中调用具体类实例的同名方法。

 

装饰模式

使用被装饰类的子类的实例,将该实例委托给装饰类。

 

有一个被装饰类的接口,一个该接口的实现类,一个实现了该接口的抽象装饰类,该抽象装饰类有一个抽象被装饰接口的引用,通过构造方法传入实例,实现接口的方法调用了该引用指向的实例方法。多个继承实现该抽象装饰类的具体装饰类。

 

桥模式

将抽象和实现解耦,让它们分别独立的变化,是继承关系的一个替代方案。

 

如果一个类,按照不同类型有多种抽象方式,比如CAR,根据车型有SUV, TRUCK, BUS等,根据制造商有一汽,二汽等等,那么可以选择一个类型进行抽象,比如选用车型进行抽象,而将另一种抽象方式作为类的一个字段,在构造方法中赋值,通过类的实现和类的成员字段就具体表示了某一个特定类型的实例。

 

组合模式

把部分和整体的关系用树形结构来表示,从而使客户端能够把一个一个的部分对象和由它们组合起来的整体对象采用同样的方式看待,也是继承的一种替代方案。

 

包括一个抽象类接口,一个具体类,一个容器类,容器类也继承了抽象类接口。

 

一个树形结构,表示为通过抽象类引用放入容器类的具体类实例集合。

 

这个模式无法体现树形结构的继承关系。但是方便将各个节点作为同等对象看待。调用容器类的实现的抽象方法就实现了便利树结构调用全部子节点的抽象方法的过程。

 

享元模式(FLYWEIGHT)

包括享元类抽象类,享元具体类,享元工厂类

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值