1.Java的设计模式及原则
(1)什么是设计模式?
在软件工程中,设计模式是对软件设计中普遍存在的各种问题,所提出的解决方案。换句话说,设计模式是一套被反复使用、多数人知晓的、经过分类的、代码设计的经验的总结。使用设计模式是为了可重用代码,让代码更容易被他人理解,保证代码可靠性。
(2)设计模式的原则
Java设计模式分为:
开闭原则(Open Close Principle),即对扩展开放,对修改封闭。在程序需要进行扩展的时候,不能去修改或影响原有的代码,实现一个热插拔的效果(需要使用接口和抽象类)。
里氏替换原则(LSP: The Liskov Substitution Principle),任何基类可以出现的地方,子类一定可以出现。里氏代换原则是继承复用的基石,只有当子类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而且子类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。
依赖倒转原则(Dependence Inversion Principle),这个原则是开闭原则的基础,核心内容:针对接口编程,高层模块不应该依赖底层模块,二者都应该依赖抽象而不依赖于具体。
接口隔离原则(Interface Segregation Principle),这个原则的意思是:使用多个隔离的接口,比使用单个庞大的接口要好。其目的在于降低耦合度。低依赖,低耦合可以便于升级和维护软件。
单一职责原则(Single Responsibility Principle),类的职责要单一,不能将太多的职责放在一个类中。
最少知道原则(Demeter Principle),最少知道原则也叫迪米特法则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。
合成复用原则(Composite Reuse Principle),合成复用原则就是在一个新的对象里通过关联关系(组合关系、聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用功能的目的。
2.Java的设计模式分类
首先,Java的设计模式分为以下三类:创建型模式,结构型模式,行为型模式。而本次学习中涉及到的设计模式分别是创建模式下的工厂模式、抽象工厂模式和单例模式,结构型模式下的适配器模式和装饰器模式,行为型模式下的观察者模式。