设计模式的最终目的是解决软件的高可维护性和高复用性问题以及应对大数据、高并发、高智能的挑战。

设计模式遵循的原则:

1 开闭原则。对开展开放,对修改关闭。不修改原代码的前提下实施功能扩展。

2 里氏代换。子类可以代替基类出现在任何地方。

3 依赖倒转。依赖于抽象,不要依赖于实现。代码往上走,数据往下走,功能在抽象类中实现。

4 合成聚合。多用关联、依赖,少用继承来实现复用。

5 迪米特法则。软件和另一个软件少发生相互作用。强内聚,弱耦合。

6 接口隔离。对外接口尽量少。公布的接口要保持稳定,不能随意修改,可以增加新的接口。