设计模式1
设计模式
为什么要使用设计模式?
设计模式代表了 最佳的实践,是软件开发人员在软件开发过程中面临的一般问题的解决方案。是一套被反复使用的,多数人知晓的(开发人员熟悉的),经过分类编目的,代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。
设计模式分类
创建型模式
- 工厂模式(Factory Pattern)
- 抽象工厂模式(Abstract Factory Pattern)
- 单例模式(Singleton Pattern)
- 建造者模式(Builder Pattern)
- 原型模式(Prototype Pattern)
结构型模式
- 适配器模式(Adapter Pattern)
- 桥接模式(Bridge Pattern)
- 过滤器模式(Filter、Criteria Pattern)
- 组合模式(Composite Pattern)
- 装饰器模式(Decorator Pattern)
- 外观模式(Facade Pattern)
- 享元模式(Flyweight Pattern)
- 代理模式(Proxy Pattern)
行为型模式
- 责任链模式(Chain of Responsibility Pattern)
- 命令模式(Command Pattern)
- 解释器模式(Interpreter Pattern)
- 迭代器模式(Iterator Pattern)
- 中介者模式(Mediator Pattern)
- 备忘录模式(Memento Pattern)
- 观察者模式(Observer Pattern)
- 状态模式(State Pattern)
- 空对象模式(Null Object Pattern)
- 策略模式(Strategy Pattern)
- 模板模式(Template Pattern)
- 访问者模式(Visitor Pattern)
设计模式间的关系
设计模式的六大原则
1、开闭原则(Open Close Principle)
对扩展开放,对修改关闭 在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。
例如抽象工厂模式
2、里氏代换原则(Liskov Substitution Principle)
面向对象的基本原则之一。里氏代换原则:任何基类可以出现的地方,子类一定可以出现。LSP是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。
解释:子类型必须能够替换掉它们的父类型。
一个场景如果使用的是父类的话,那么一定适用于其子类,而察觉不出父类对象和子类对象的区别。也就是说在这个场景中,将父类替换成它的子类,程序的行为不会有变化。
3、依赖倒转原则(Dependence Inversion Principle)
是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。
4、接口隔离原则(Interface Segregation Principle)
使用多个隔离的接口,比使用单个接口要好。目的是为了降低类之间的耦合度。
由此可见,其实设计模式就是从大型软件架构出发,便于升级和维护的软件设计思想,它强调降低依赖,降低耦合。
5、迪米特法则/最少知道原则(Demeter Principle)
最少知道原则指:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模式相对独立。
6、合成复用原则(Composite Reuse Principle)
尽量使用合成/聚合的方式,而不是使用继承。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!