java设计模式
设计模式(Design Pattern)是经过高度抽象化的在编程中可以被反复使用的代码设计经验的总结。
设计模式7原则
- 单一职责原则
单一职责原则又称单一功能原则,它规定一个类只有一个职责。如果有多个职责(功能)被设计在一个类中,这个类就违反了单一职责原则。 - 开闭原则
开闭原则规定软件中的对象(类、模块、函数等)对扩展开放,对修改封闭,这意味着一个实体允许在不改变其源代码的前提下改变其行为,该特性在产品化的环境下是特别有价值的,在这种环境下,改变源代码需要经过代码审查、单元测试等过程,以确保产品的使用质量。遵循这个原则的代码在扩展时并不发生改变,因此不需要经历上述过程。 - 里式代换原则
里氏代换原则是对开闭原则的补充,规定了在任意父类可以出现的地方,子类都一定可以出现。实现开闭原则的关键就是抽象化,父类与子类的继承关系就是抽象化的具体表现,所以里氏代换原则是对实现抽象化的具体步骤的规范。 - 依赖倒置原则
依赖倒转原则指程序要依赖于抽象(Java中的抽象类和接口),而不依赖于具体的实现(Java中的实现类)。简单地说,就是要求对抽象进行编程,不要求对实现进行编程,这就降低了用户与实现模块之间的耦合度。 - 接口隔离原则
接口隔离原则指通过将不同的功能定义在不同的接口中来实现接口的隔离,这样就避免了其他类在依赖该接口(接口上定义的功能)时依赖其不需要的接口,可减少接口之间依赖的冗余性和复杂性。 - 合成/聚合复用原则
合成/聚合复用原则指通过在一个新的对象中引入(注入)已有的对象以达到类的功能复用和扩展的目的。它的设计原则是要尽量使用合成或聚合而不要使用继承来扩展类的功能。 - 迪米特法则
迪米特法则指一个对象尽可能少地与其他对象发生相互作用,即一个对象对其他对象应该有尽可能少的了解或依赖。其核心思想在于降低模块之间的耦合度,提高模块的内聚性。迪米特法则规定每个模块对其他模块都要有尽可能少的了解和依赖,因此很容易使系统模块之间功能独立,这使得各个模块的独立运行变得更简单,同时使得各个模块之间的组合变得更容易。设
设计模式分类
设计模式按照其功能和使用场景可以分为:创建型模式、结构型模式和行为型模式。
java设计模式
序号 | 设计模式 | 说明 | 包含的设计模式 |
---|---|---|---|
1 | 创造型模式 | 提供了多种优雅的创建对象的方法 | 工厂模式、抽象工厂模式、单例模式、建造者模式、原型模式。 |
2 | 结构型模式 | 通过类和接口之间的继承和引用实现创建复杂结构对象的功能 | 适配器模式、桥接模式、过滤器模式、组合模式、装饰器模式、外观模式、享元模式、代理模式 |
3 | 行为型模式 | 通过类之间不同的通信方式实现不同的行为方法 | 责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式 |
3 | 行为型模式 | 通过类之间不同的通信方式实现不同的行为方法 | 状态模式、策略模式、模板模式、访问者模式 |