作者:欧泊王_121 | 来源:互联网 | 2024-12-24 15:31
一、Java设计模式分类:
- 创建型模式(5种):包括工厂方法模式、抽象工厂模式、单例模式、建造者模式和原型模式。这些模式主要用于对象的创建,以提高代码的灵活性和复用性。
- 结构型模式(7种):涵盖适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式和享元模式。这类模式用于处理类或对象之间的关系,优化系统结构。
- 行为型模式(11种):涉及策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式和解释器模式。行为型模式主要关注对象之间的职责分配和交互方式。
二、设计模式遵循的原则:
1. 开闭原则(Open-Closed Principle, OCP)
模块对扩展开放,对修改关闭,确保软件在不修改现有代码的情况下能够实现功能扩展。
2. 里氏替换原则(Liskov Substitution Principle, LSP)
子类必须能够替换其父类而不影响程序的正确性,从而保证继承机制的有效性和安全性。
3. 依赖倒置原则(Dependency Inversion Principle, DIP)
高层模块不应依赖于低层模块,二者应共同依赖于抽象。具体实现应依赖于接口或抽象类,而不是具体的实现类。
4. 接口隔离原则(Interface Segregation Principle, ISP)
客户端不应依赖它不需要的接口,避免一个接口承担过多职责,降低耦合度。
5. 迪米特法则(Law of Demeter, LoD)
一个对象应当尽量减少与其他对象的直接交互,保持系统的模块化和独立性。
6. 合成复用原则(Composite Reuse Principle, CRP)
优先使用对象组合或聚合的方式,而非继承,以增强代码的灵活性和可维护性。
三、常用设计模式详解:
1. 单例模式(Singleton Pattern)
确保一个类只有一个实例,并提供全局访问点。
2. 工厂方法模式(Factory Method Pattern)
定义一个创建对象的接口,但由子类决定实例化哪一个类。
3. 原型模式(Prototype Pattern)
通过复制已有对象来创建新对象,适用于对象创建成本较高的场景。
4. 观察者模式(Observer Pattern)
定义一对多的依赖关系,当一个对象状态改变时,所有依赖于它的对象都会得到通知并自动更新。
5. 建造者模式(Builder Pattern)
将复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。
6. 适配器模式(Adapter Pattern)
使原本由于接口不兼容而不能一起工作的那些类可以一起工作。
7. 装饰器模式(Decorator Pattern)
动态地给一个对象添加一些额外的职责,而不改变原有对象的结构。
8. 代理模式(Proxy Pattern)
为其他对象提供一种代理以控制对这个对象的访问。
9. 桥接模式(Bridge Pattern)
将抽象部分与其实现部分分离,使它们都可以独立变化。
10. 模板方法模式(Template Method Pattern)
定义一个操作中的算法骨架,而将一些步骤延迟到子类中实现。
11. 策略模式(Strategy Pattern)
定义一系列算法,把它们一个个封装起来,并且使它们可以相互替换。
12. 命令模式(Command Pattern)
将请求封装成对象,从而使用户可以用不同的请求对客户进行参数化。