c/c++设计模式
一.前言
用好设计模式,可以提高代码水平,所以把学过C++设计模式的做个总结和分类。
二.七大原则
- 单一职责原则:一般来说,类和函数的颗粒度越小越好。一个函数只有一项功能,一个类只负责一项功能。
- 开闭原则:对拓展开放、对修改关闭。
- 依赖倒置原则:高层模块不应该依赖底层模块,应该通过抽象(中间层)来依赖。
- 合成复用原则:尽量使用对象的组合/聚合来达到复用,而不是通过继承达到复用。组合通过将一个类的实例作为另一个类的成员来实现代码复用。组合是"has a",继承是"is a"
- 迪米特法则:即最少知道原则,一个实体应尽量减少与其它实体之间发生相互作用,使得系统各功能模块相对独立。??
- 里氏替换原则:任何基类可以出现的地方,子类一定可以出现。??
- 接口隔离原则:使用多个隔离的接口比使用单个接口更好,以降低类的耦合度。??
三.分类
设计模式可以分为三类
- 创建型模式
简单工厂(不在23种之列)、工厂方法、抽象工厂、单例 - 结构型模式
代理、装饰、外观、适配器 - 行为型模式
模板方法、观察者、状态模式、命令、策略、
四.创建型模式介绍
- 简单工厂:一个工厂负责所有类的创建。用户需要什么类,这个工厂就创建哪个类。
- 工厂方法:把工厂抽象出来,一个工厂一个对应一个类,需要什么类就找哪个工厂;符合了开闭原则。
- 抽象工厂:针对某个系列的类(产品族)来对工厂进行抽象进行。
- 单例模式:一个对象的get方法,多次调用保证系统全局只存在一个。
五.结构型模式介绍
- 代理模式:用一个代理,去控制其它对象对"服务器"的访问,这个代理相当于一个缓冲服务器。
- 装饰模式:动态地给一个类增加功能。LOL盖伦,买了件狂徒铠甲,变成了一个全新的、血更厚的盖伦,和原来扛不住伤害地自己说了拜拜(删除了原来地对象)。
- 外观模式:不同的场景,需要不同道具的开关组合。
- 适配器模式:接口适配。
六.行为型模式介绍
- 模板方法:对同一类行为(泡牛奶和泡咖啡,不同协议的解析)抽象出方法、步骤。
- 观察者模式:多个观察者,一个被观察者;被观察者发生变化,通知所有观察者。
- 状态模式:状态机。状态、事件、行为。
- 策略模式:LOL盖伦的攻击:自身技能的攻击有沉默、旋转、大宝剑;召唤师技能:引燃、虚弱。
- 命令模式:客户端和服务器之前的通信,服务器接收不同命令请求缓存到队列中,依次执行不同的动作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)