博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结构型模式总结
阅读量:2381 次
发布时间:2019-05-10

本文共 1234 字,大约阅读时间需要 4 分钟。

结构型模式综述

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


Adapter

详细链接

简述

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


Bridge

详细链接

简述

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


Composite

详细链接

简述

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


Decorator

详细链接

简述

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


Facade

详细链接

简述

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


Flyweight

详细链接

简述

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


Proxy

详细链接

简述

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

转载地址:http://hgkab.baihongyu.com/

你可能感兴趣的文章
冒号课堂§5.2:数据类型
查看>>
博客搬家
查看>>
冒号课堂§6.2:平台语言
查看>>
《关于信息系统组织方式的一个提案》的评论与反评
查看>>
冒号和他的学生们(连载10)——超级范式
查看>>
冒号和他的学生们(连载9)——泛型范式
查看>>
冒号和他的学生们(连载13)——范式总结
查看>>
A Proposal on Organization of Information System
查看>>
冒号和他的学生们(连载2)——首轮提问
查看>>
正则表达式与文件格式化处理
查看>>
Java EE互联网轻量级框架整合开发
查看>>
Java语言程序设计(基础篇)
查看>>
大型网站技术架构:核心原理与案例分析
查看>>
JAVA并发编程实战
查看>>
RabbitMQ实战++高效部署分布式消息队列
查看>>
微服务设计
查看>>
Spring Cloud微服务实战
查看>>
C++ static 语义
查看>>
C++ static 语义
查看>>
Linux Cgroups概述
查看>>