# 设计模式
一些生动的设计模式示例,主要参考[C语言中文网](http://c.biancheng.net/design_pattern/)
在看这些之前,请先自觉复习下[UML类图](https://www.jianshu.com/p/57620b762160)的用法
#### 创建型模式
创建型模式的主要关注点是“怎样创建对象?”,它的主要特点是“将对象的创建与使用分离”。
* <b>单例(Singleton)模式</b>:某个类只能生成一个实例,该类提供了一个全局访问点供外部获取该实例,其拓展是有限多例模式。
* <b>原型(Prototype)模式</b>:将一个对象作为原型,通过对其进行复制而克隆出多个和原型类似的新实例。
* <b>工厂方法(FactoryMethod)模式</b>:定义一个用于创建产品的接口,由子类决定生产什么产品。
* <b>抽象工厂(AbstractFactory)模式</b>:提供一个创建产品族的接口,其每个子类可以生产一系列相关的产品。
* <b>建造者(Builder)模式</b>:将一个复杂对象分解成多个相对简单的部分,然后根据不同需要分别创建它们,最后构建成该复杂对象。
以上 5 种创建型模式,除了工厂方法模式属于类创建型模式,其他的全部属于对象创建型模式
#### 结构型模式
结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。
* <b>代理(Proxy)模式</b>:为某对象提供一种代理以控制对该对象的访问。即客户端通过代理间接地访问该对象,从而限制、增强或修改该对象的一些特性。
* <b>适配器(Adapter)模式</b>:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。
* <b>桥接(Bridge)模式</b>:将抽象与实现分离,使它们可以独立变化。它是用组合关系代替继承关系来实现的,从而降低了抽象和实现这两个可变维度的耦合度。
* <b>装饰(Decorator)模式</b>:动态地给对象增加一些职责,即增加其额外的功能。
* <b>外观(Facade)模式</b>:为多个复杂的子系统提供一个一致的接口,使这些子系统更加容易被访问。
* <b>享元(Flyweight)模式</b>:运用共享技术来有效地支持大量细粒度对象的复用。
* <b>组合(Composite)模式</b>:将对象组合成树状层次结构,使用户对单个对象和组合对象具有一致的访问性。
以上 7 种结构型模式,除了适配器模式分为类结构型模式和对象结构型模式两种,其他的全部属于对象结构型模式
季风泯灭的季节
- 粉丝: 2021
- 资源: 3370
最新资源
- 飞机、森林、河、网球场检测16-YOLO(v8至v11)数据集合集.rar
- PANGU盘古M900硬件资料包
- 飞机和飞机跑道检测14-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord、VOC数据集合集.rar
- 注册表监视器,时刻检查程序修改的地方,一切动作尽在掌控
- linux samba.
- redhad-lsb,安装磐维数据库,安装oracle数据库等常用的依赖包
- 飞机检测12-YOLO(v5至v9)、COCO、CreateML、Darknet、Paligemma、TFRecord数据集合集.rar
- libpng,安装磐维数据库,安装oracle数据库等常用的依赖包
- 非常好的在线聊天系统源代码100%好用.zip
- redhat-lsb-core,安装磐维数据库,安装oracle数据库等常用的依赖包
- redhat-lsb-core,安装磐维数据库,安装oracle数据库等常用的依赖包
- 可以在mac下开发的微雪esp32触摸屏开发板的支持包
- redhat-lsb-submit-security,安装磐维数据库,安装oracle数据库等常用的依赖包
- glibc-devel,安装磐维数据库,安装oracle数据库等常用的依赖包
- iperf3.18 for win7 x64 +andriod +win X64
- 国产视频会议软件全套(适配麒麟、UOS等 适配ARM、X65、龙芯等CPU)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈