结构型模式总结

结构型模式综述

通过继承和对象组合实现结构型模式,其中继承实现的是类结构型模式,对象组合实现的是对象结构型模式。注意优先使用对象组合,而不是类继承。一般常见的结构型模式有7种:ABCDFFP (Adapter, Bridge, Composite, Decorator, Façade, Flyweight, Proxy).


Adapter

详细链接

Adapter

简述

将一个类的接口转换成客户希望的另外一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。一般使用在项目后期,项目扩展阶段。


Bridge

详细链接

Bridge

简述

将抽象部分与实现部分分离,使它们都可以独立地变化。又称柄体(Handle and body)模式或者接口(Interface)模式。 它主要用于应对多维度变化点问题,通过对象组合的方式,可以极大地减少子类的数目,同时还能让不同维度独立扩展变化。当一个抽象可能有多个实现时,通常用继承来协调他们。抽象类的定义对该抽象的接口。而具体的子类则用不同的方式加以实现,但是此方法有时不够灵活。继承机制将抽象部分与他的视线部分固定在一起,使得难以对抽象部分和实现部分独立地进行修改、扩充和充用。Bridge模式是一个非常有用的模式,它很好的符合了开放-封闭原则(COP)和组合/聚合复用原则(CARP),优先使用对象,而不是继承这两个面向对象原则。


Composite

详细链接

Composite

简述

将对象组合成树形结构以表示“整合-部分”的层次结构,从而使得用户对单个对象和组合对象的使用具有一致性,也就是客户端能够透明地无区别地操作两者。组合模式解耦了客户程序与复杂元素内部结构,从而使客户程序可以向处理简单元素一样来处理复杂元素。


Decorator

详细链接

Decorator

简述

动态的给对象增加一些职责,比生成子类更灵活。装饰者模式描述了如何动态的给对象增加职责,采用递归方式组合对象从而允许你添加任意多的职责。Decorator模式采用对象组合而非继承的手法,实现了在运行时动态的扩展对象功能的能力,而且可以根据需要扩展多个功能,避免了单独使用继承带来的“灵活性差”和“多子类衍生问题”。


Facade

详细链接

Facade

简述

为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用,将客户程序对子对象的调用与子对象的变化分离。


Flyweight

详细链接

Flyweight

简述

运用共享技术有效的支持大量细粒度的对象。为了使对象可以共享,需要将一些状态外部化,这使得程序的逻辑复杂化。 享元模式将享元对象的状态外部化,而读取外部状态使得运行时间稍微变长。


Proxy

详细链接

Proxy

简述

为其他对象提供一种代理以控制这个对象的访问。在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。包括远程代理,虚拟代理,保护代理,智能指引灯, Copy-on-Write代理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值