前言:最近花了近一个月左右的时间把Java的设计模式学习了一遍,并把每次学习的笔记总结都写成了博客进行记录,在日常的工作中也会灵活运用一些设计模式到实际的项目当中,学完之后受益匪浅,这边做一个笔记的分享,常见的23种Java设计模式都汇总在这里了,大家按需查看即可!
目录
一、基础概念
二、设计原则
三、为什么要学习设计模式
四、设计模式汇总
4.1、创建型
4.1.1、工厂方法模式
4.1.2、抽象工厂模式
4.1.3、建造者模式
4.1.4、原型模式
4.1.5、单例模式
4.2、结构型
4.2.1、适配器模式
4.2.2、桥接模式
4.2.3、组合模式
4.2.4、装饰器模式
4.2.5、外观模式
4.2.6、享元模式
4.2.7、代理模式
4.3、行为型
4.3.1、责任链模式
4.3.2、命令模式
4.3.3、迭代器模式
4.3.4、中介者模式
4.3.5、备忘录模式
4.3.6、观察者模式
4.3.7、状态模式
4.3.8、策略模式
4.3.9、模板方法模式
4.3.10、访问者模式
4.3.11、 解释器模式
五、总结
Java的设计模式是在Java语言环境下,对软件设计中反复出现的问题所对应的通用解决方案的总结,它代表了软件设计中优秀的实践经验,是软件设计中常见问题的可复用解决方案,通过封装变化、提高灵活性、复用代码来降低系统耦合,实现程序的重构。
设计模式的核心思想是:
1、封装变化:识别出经常变化的地方,将其封装起来。
2、程序到接口编程,而不是具体类。
3、组合优于继承:更灵活,避免多重继承问题。
4、开闭原则:对扩展开放,对修改关闭。
使用设计模式的主要优点:
1、代码复用性高,可维护性强。设计模式提供了经典的代码实现,大大提高了代码质量和开发效率。
2、程序结构清晰,层次分明。设计模式使代码易于理解和修改。
3、各模块间耦合度低,独立性强。设计模式通过抽象和封装,减少模块间的依赖。
4、可扩展性强。设计模式增强了程序的可扩展性,当需求变更时,模式提供了对修改友好的代码结构。
1、单一职责原则(Single Responsibility Principle)
每个类只负责一个功能领域中的相应职责。设计模式中的类也应该只负责一项职责。
2、开闭原则(Open Closed Principle)
设计模式的实现要对扩展开放,对修改关闭。可以通过继承等方式扩展设计模式,而不需要修改源代码。
3、里氏替换原则(Liskov Substitution Principle)
设计模式中子类必须能够替换父类出现的地方,满足父类约定的功能。
4、依赖倒转原则(Dependence Inversion Principle)
设计模式中的高层模块不应该依赖底层模块,都应依赖抽象接口。
5、接口隔离原则(Interface Segregation Principle)
使用多个专门的接口,不使用庞大臃肿的接口。设计模式也应遵循此原则。
6、组合/聚合复用原则(Composite/Aggregate Reuse Principle)
优先使用组合和聚合,而不是继承关系复用代码。
7、迪米特法则(Law of Demeter)
一个对象应该对其他对象保持最少依赖,不该关心不相关对象的内部结构和工作细节。
原因有如下6点:
1、复用成功的设计方案设计模式提供了可复用的代码设计经验,学习设计模式可以避免重复设计,直接应用成功的设计方案。
2、便于交流设计模式提供了软件工程领域的通用语言和术语,使用设计模式有助于编程人员之间的交流和理解。
3、提高灵活性设计模式通过抽象化把变化隔离开来,使程序结构更加灵活,便于扩展和维护。
4、提高代码质量使用设计模式的代码通常更简洁,复用性更好,错误更少,整体质量更高。
5、降低维护成本设计模式提高了代码的可读性,便于维护和扩展,降低后期软件维护的成本。
6、培养设计思维学习设计模式可以培养程序员的系统设计能力和设计思维,有助于分析和解决问题。
总之,Java设计模式是每个程序员必学的重要知识点,可以帮助编写高质量代码,提高工作效率和项目质量。
创建型模式关注的是对象的创建,目的是将对象的创建与使用分离,提高灵活性和可维护性。
核心:将new操作单独封装,使对象的创建过程更加灵活。
Java中使用工厂模式和策略模式优雅消除if-else语句(UML类图+案例分析)
Java中使用工厂模式和策略模式优雅消除if-else语句(UML类图+案例分析)
Java设计模式之创建型-建造者模式(UML类图+案例分析)
Java设计模式之创建型-原型模式(UML类图+案例分析)
Java设计模式之创建型-单例模式(UML类图+案例分析)
结构型模式关注对象的组合,目的是用继承和聚合的方式创建出新的对象结构,简化系统设计。
核心:将对象组合成树形结构以显示部分-整体层次。
Java设计模式之结构型-适配器模式(UML类图+案例分析)
Java设计模式之结构型-桥接模式(UML类图+案例分析)
Java设计模式之结构型-组合模式(UML类图+案例分析)
Java设计模式之结构型-装饰器模式(UML类图+案例分析)
Java设计模式之结构型-外观模式(UML类图+案例分析)
Java设计模式之结构型-享元模式(UML类图+案例分析)
Java设计模式之结构型-代理模式(UML类图+案例分析)
行为型模式关注的是对象之间的交互,目的是用一致的方式管理不同对象之间复杂的交互关系。
核心:通过封装机制来管理对象间复杂交互。
Java设计模式之行为型-责任链模式(UML类图+案例分析)
Java设计模式之行为型-命令模式(UML类图+案例分析)
Java设计模式之行为型-迭代器模式(UML类图+案例分析)
Java设计模式之行为型-中介者模式(UML类图+案例分析)
Java设计模式之行为型-备忘录模式(UML类图+案例分析)
Java设计模式之行为型-观察者模式(UML类图+案例分析)
Java设计模式之行为型-状态模式(UML类图+案例分析)
Java中使用工厂模式和策略模式优雅消除if-else语句(UML类图+案例分析)
Java设计模式之行为型-模板方法模式(UML类图+案例分析)
Java设计模式之行为型-访问者模式(UML类图+案例分析)
Java设计模式之行为型-解释器模式(UML类图+案例分析)
以上就是我对Java设计模式学习之后的总结文档,免费分享给大家,评论区欢迎一起共同探讨和学习!