设计模式
一、前言
学设计模式主要是提升自己,提高写代码的水平和看代码的水平
基础:
有java基础
学习过SSM springboot [会有源码分析,学过更好]
我的学习资料:
视频地址:
https://www.bilibili.com/video/BV1mc411h719 狂神23种设计模式,先看的狂神,但他停更了,想继续了解就去了尚硅谷的视频
https://www.bilibili.com/video/BV1G4411c7N4 b站尚硅谷官方
更新方式: 一个设计模式一个博 [大概…]
注意: 写的不好的地方请指出
二、什么是设计模式
设计模式(Disign Pattern),解决问题的套路
是用来提高代码的
低耦合性,高内聚性,可维护性,可扩展性,重用性,灵活性
的解决方案
人称GoF设计模式,F4创建
设计模式的本质是面对对象原则的实际运用,是对类的封装性,继承性和多态性以及类的关联性和组合关系的充分理解
设计模式在软件中哪:面向对象(OO)=>功能模块[设计模式+算法(数据结构)]=》框架[使用到多种设计模式]=》架构[服务器集群]
三、GoF23
- 创建型模式:
单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式 - 结构型模式:
适配器模式,桥接模式,装饰模式,组合模式,外观模式,享元模式,代理模式 - 行为型模式:
模板方法模式,命令模式,迭代器模式,观察者模式,中介者模式,备忘录模式,解释器模式,状态模式,策略模式,职责链模式,访问者模式
四、OOP七大原则
- 开闭原则 ocp:扩展开放,对修改关闭
编程中最基础,最重要的的设计原则
经量通过扩展软件实体行为来实现变化,而不是通过修改已有的代码变化 - 里式替换原则:继承必须确保超类所拥有的性质在子类中依然成立
子类中尽量不要重写父类方法,继承使两个类的耦合性增强了,在适当的情况下可以通过继承更通俗的基类或使用聚合,组合,依赖的方式解决问题 - 依赖倒置原则:要面向接口编程,不要面向实现编程
1)高层模块不应该依赖底层模块,二者都应该依赖抽象
2)抽象不应该依赖细节,细节应该依赖抽象 - 单一职责原则:控制类的粒度大小,将对象解耦,提高其内聚性[一个类做一件事]
反单一职责原则:当类中的方法数量足够少,可以在方法级别保持单一职责原则 - 接口隔离原则:要为各个类建立它的需要的专用接口
- 迪米特法则:只要与你的直接朋友交谈,不跟”陌生人“说话
类与类的关系越密切,耦合性越大
出现在成员变量,方法参数,方法返回值中的类为直接好友
出现在局部变量中的类不是直接好友
陌生的类最好不要以局部变量的形式出现在类的内部 - 合成复用原则:尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现
五、设计原则的核心思想
- 找出可能变化之处,把他们独立出来,不要和不需要变化的代码混在一起
- 针对接口编程,而不是针对实现编程
- 为了交互对象之间的松耦合设计而努力