软件工程设计模式--结构型设计模式

设计模式的核心思想 :

 广义------软件设计模式是可解决一类软件问题并能重 复使用的软件设计方案

 狭义------设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述,是在类和对象的层次描述的可重复使用的软件设计问题的解决方案

设计模式按目的分类可以分为创建型、行为型、结构型,按范围分类可以分为类模式和对象模式。

设计模式之间的关系如下图所示:

结构型设计模式

类结构型模式关心类的组合,系统中一般只存在继承关系和实现关系。

对象结构型模式关心类与对象的组合,通过关联关系使得在一个类中定义另一个类的实例对象。

适配器模式

作用:将一个类的接口,转换成客户期望的另一个接口,适配器让原本接口不兼容的类可以一起工作。

类适配器使用的是继承关系。

对象适配器使用的是组合关系。

其实适配器模式是比较好理解的,他经常用在一些不能更改的类(比如类库),去适应一个接口,用对象型适配器模式来打个比方,适配器可以持有一个可以实现特殊功能的对象,然后去重写一个功能需求的接口,然后在这个功能需求的实现方法里面去调用这个成员对象的特殊功能。

桥梁模式

桥梁模式一般也用于表示两个维度的特征,他允许在一个维度使用继承关系,然后持有另一个维度的对象,使用另一个维度对象的方法来共同表示当前这个对象的特征。

其实质是抽象与实现的解耦合。

装饰者模式

装饰者模式允许在不改变一个类的前提下动态的为这个类添加新的功能。

外观模式

外观模式的设计原则是迪米特法则:不要和陌生人说话。(是一个比较简单的设计模式)

组合模式

享元模式

代理模式

结构型模式总结

相关推荐
lqqjuly10 小时前
设计模式:理论、架构与 C++ 实现—SOLID原则到23 种经典模式
c++·设计模式·架构
草莓熊Lotso15 小时前
【Linux网络】深入理解 HTTP 协议(一):从基础概念到 URL 编码解码
linux·网络·c++·网络协议·http·软件工程
老码观察15 小时前
设计模式实战解读(九):责任链模式——流水线上层层把关的艺术
java·设计模式·责任链模式
Anchenry15 小时前
CoinTrail-智能Ai记账软件
人工智能·软件工程·软件需求
Generalzy1 天前
从本地 Demo 到生产级检索:Milvus 学习笔记(1)
golang·prompt·软件工程
unclejet1 天前
颠覆传统开发!AI根治软件工程技术债务顽疾
大数据·人工智能·软件工程
明航咨询—张老师1 天前
软件工程造价师认证实战应用与职业价值指南
大数据·证书·软件工程·it
一路往蓝-Anbo2 天前
第九章:OTA 与 Flash 驱动 —— 如何用TDD验证固件升级逻辑的鲁棒性
stm32·单片机·嵌入式硬件·软件工程·tdd·ota·嵌入式测试驱动开发
数字时代全景窗2 天前
商业航天不是航天的分支,而是产业革命本身
架构·软件工程
vensli2 天前
消息跨端架构演进:基于 C++ 的多端一致性研发框架实践
java·人工智能·软件工程·安卓