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

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

摘自大话设计模式

结构性模式

适配器模式:将一个类的接口转换为客户需要的另一个接口。使得原本由于不兼容的接口而不能一起工作的类可以一起工作。
特点:让接口不同的类通过适配器协调工作。
设计模式-结构型模式

桥接模式:将抽象部分与实现部分分离,使他们可以独立工作。

特点:继承过渡使用的话,会使得设计复杂,难以维护,这时候可以解耦变化,然后通过组合的方式,把角色的继承改为组合。其实就是找出变化并封装然后聚合代替继承。
设计模式-结构型模式

组合模式:将对象组合成树结构,表示‘部分-整体’的层次结构,组合模式使用户对单个对象和组合对象的使用具有一致性。

特点:可以忽略组合对象和单个对象的不同,统一使用组合模式中的所有对象。
设计模式-结构型模式

装饰模式:动态的给对象添加额外的职能,就增加功能来说,装饰模式比子类更灵活。

特点:继承过渡使用,使得子类庞大,并且大部分子类只是为某一对象增加职责。用装饰模式的方式,可以动态透明的给单个对象增加职责。
设计模式-结构型模式

外观模式:为子系统的一组接口提供一个一致性界面,外观模式定义了更高层接口,这个接口使得子系统更加容易使用。

特点:如果两个类不需要直接通信,那么就不要让他们直接发生关系,如果实在要调用,那么通过第三者转发调用。具体办法就是引入外观对象,他为子系统提供一个简单单一的屏障。
设计模式-结构型模式

享元模式:为运用共享技术有效的支持大量细粒度对象。

特点:对象使用过多,会让内存占用太多,大量重复对象,会造成资源浪费。所以需要享元。
设计模式-结构型模式

代理模式:为其他对象提供一种代理以控制对这个对象的访问。

代理与外观的区别:代理代表一个单一对象而外观代表一个子系统;代理的客户对象无法直接访问目标对象,由代理提供对单独的目标对象的访问控制,而外观的客户对象可以直接访问子系统中的各个对象,但通常由外观对象提供对子系统各元件功能的简化的共同层次的调用接口。
代理与适配器:代理是原来对象的代表,其他需要与这个对象打交道的操作其实都是与这个代表交涉;适配器不需要虚构出一个代理,只需要为应付特定使用目的,将原来的类进行一些组合。
设计模式-结构型模式

转载于:https://blog.51cto.com/5591787/2126268

你可能感兴趣的文章
iOS探索:RunLoop本质、数据结构以及常驻线程实现
查看>>
算法的时间复杂度
查看>>
iOS独立开发者使用Bmob第三方后台服务初探
查看>>
共享适合移动端的“拾色器”插件
查看>>
《Java编程思想》笔记09------异常处理
查看>>
CPU发生异常到生成Crash Log的过程
查看>>
pyqt5中动画的使用
查看>>
[译]用 Java 创造你的第一个区块链之第二部分 —— 交易
查看>>
vuex 源码:如何实现一个简单的 vuex
查看>>
Thymeleaf的基本语法
查看>>
theos的Tweak创建的dylib怎么安装到非越狱机上详解
查看>>
Picasso-源码解析(三)
查看>>
深入理解 RxJava2:揭秘 subscribeOn(3)
查看>>
到底什么才是业务架构?
查看>>
基础设施即代码:Terraform和AWS无服务器
查看>>
Atlassian发布事故管理解决方案Jira Ops
查看>>
书评 —— 《Go语言编程》
查看>>
Apache HBase的现状和发展
查看>>
反模式的经典 - Mockito设计解析
查看>>
Zip Slip目录遍历漏洞已影响多个Java项目
查看>>