Java设计模式(23种Java设计模式)
一、什么是Java设计模式?
设计模式(Design pattern)是一套被反复使用、被大多数人知晓、被分类编目的代码设计经验的总结 。设计模式用于重用代码,使其他人更容易理解并确保代码的可靠性 。毫无疑问,设计模式对他人和系统都是双赢的 。设计模式使代码编译真正工程化 。设计模式是软件工程的基石,就像建筑的砖块一样 。设计模式在项目中的合理应用可以完美解决很多问题,目前每种模式都有其对应的原理 。每个模式都描述了一个我们身边反复出现的问题及其核心解决方案,这也是它能够被广泛应用的原因 。
二、Java设计模式的三个类别
1.创作模式
对象实例化的模型,创建模型用来解耦对象的实例化过程 。
单例模式:一个类智能有一个提供全局访问点的实例 。
工厂模式:工厂类根据传入的参数决定创建哪个产品类实例 。
抽象工厂:创建相关或依赖对象的系列,而不明确指定特定的类 。
构建器模式:封装了一个复杂对象的创建过程,可以一步一步地构建 。
原型模式:通过复制现有的实例来创建一个新的实例 。
2.结构模式
组合类或对象以形成更大的结构 。
装饰模式:向对象动态添加新函数 。
代理模式:为其他对象提供一个代理来控制这个对象的访问 。
桥接模式:将抽象部分与其实现部分分开,这样两者都可以独立变化 。
适配器模式:将一个类的方法接口转换成客户想要的另一个接口 。
组合模式:将对象组合成树形结构,以表示“部分-整体”的层次结构 。
外观模式:提供访问子系统中一组接口的统一方式 。
元模式:通过共享技术有效支持大量细粒度对象 。
3.行为模式
如何与类和对象交互,划分职责和算法 。
模式:定义一系列算法,封装起来,让它们可以互换 。
模板:定义一个算法结构,延迟一些步骤到子类实现 。
命令模式:将命令请求封装成一个对象,这样就可以用不同的请求对其进行参数化 。
迭代器模式:一种遍历和访问聚合对象中每个元素的方法,不暴露对象的内部结构 。
观察者模式:对象之间的一对多依赖关系 。
仲裁模式:一系列的对象交互被一个中间对象封装 。
Memento模式:在不破坏封装的情况下保持对象的内部状态 。
解释器模式:给定一种语言,定义其语法的表示,并定义一个解释器 。
模式:允许对象在其内部状态改变时改变其行为 。
责任链模式:解耦请求的发送方和接收方,以便多个对象有机会处理请求 。
访问者模式:在不改变数据结构的情况下,给一组对象元素添加新的函数 。
三、Java设计模式的六个原则
1.开闭原理(开闭原理)
开放封闭原则对扩展开放,对修改封闭 。当程序需要扩展时,不能通过修改原代码来达到热插拔的效果 。所以总之,为了让程序具有可扩展性,易于维护和升级 。为了达到这个效果,我们需要使用接口和抽象类,具体设计后面会提到 。
2、里氏代换原理(Liskov代换原理)
利斯科夫替代原则LSP是面向对象设计的基本原则之一 。里希特的替代原理说,基类能出现的地方,子类就一定能出现 。LSP是继承和重用的基石 。只有当派生类可以替换基类,并且软件单元的功能不受影响的情况下,基类才能真正被重用,派生类才能给基类添加新的行为 。李希特替代原则是对“开闭”原则的补充 。抽象是实现“开-闭”原则的关键步骤 。基类和子类的继承关系是抽象的具体实现,所以Richter的替换原则是实现抽象的具体步骤的规范 。
3.依赖倒置原则 。
它是这个开放封闭原则的基础,它的具体内容:接口的编程依赖于抽象而不是具体 。
【23种Java设计模式 java设计模式】4.界面分离原理
这个原则意味着使用多个隔离接口比使用单个接口更好 。也意味着降低类之间的耦合度 。由此可见,设计模式实际上是一种软件设计思想 。从一个大的软件架构出发,方便升级维护 。所以在上面的文章中多次出现:减少依赖和耦合 。
5.德米特原理(最不为人知的原理)
为什么称最小知识原理?也就是说,一个实体要尽可能少地与其他实体交互,使系统的功能模块相对独立 。
6.复合重用原则
原则是尽量使用合成/聚合,而不是继承 。
有23种Java设计模式,可以说提高了可读性、扩展性、可重用性、类可替换性、组件化、可移植性等等 。通过接口、抽象类、继承、实现、委托、抽象、面向接口的编程、多态、重载、重写等 。,代码的这些特征就能显现出来 。可以说,只有深刻理解这些概念背后的哲学思想,才能更好地理解设计模式 。
推荐阅读
- 在民间有很多关于镜子的说法:镜子摆放的位置如果不对,很容易给自己带来霉运。&
- 贝店现在做的怎么样 贝店现在怎么不火了
- 立春不能出门吗
- 乌鸡汤是汤营养还是肉有营养
- 大寒是最冷的一天
- 长期穿塑身衣的危害是什么
- 橄榄油可以去黑头吗
- 金桔糖分高吗
- 闭口粉刺能用去角质么