再看面向对象(OOP)
面向对象的三个特点
- 封装
- 继承
- 多态
面向对象的五个基本原则
- 单一职责原则SRP(Single Responsibility Principle)
一个类,应该仅有一个引起它变化的原因。高度封装、划界清晰 - 开放封闭原则OCP(Open-Close Principle)
一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。 - 里式替换原则LSP(the Liskov Substitution Principle LSP)
子类应当可以替换父类并出现在父类能够出现的任何地方。
https://blog.csdn.net/king123456man/article/details/81626110,违反LSP的处理方案 - 依赖倒置原则DIP(the Dependency Inversion Principle DIP)(面向接口编程)
模块间的依赖同构抽象发生,实现类之间不发生直接的依赖关系,其依赖关系是通过接口或者抽象产生的。
https://blog.csdn.net/king123456man/article/details/81626127
DIP的几种写法:
1. 接口声明依赖对象
2. 构造函数传递依赖对象(Spring中的构造器注入)
3. Setter方法传递依赖对象(Spring中的方法注入) - 接口分离原则ISP(the Interface Segregation Principle ISP)
类之间的依赖关系建立在最小接口上,将非常庞大、臃肿的借口拆分成更小、更具体的接口 - 最少知识原则(Least Knowledge Principle) - 迪米特原则LOD(Law of Demeter)
一个类应该对自己需要耦合或调用的类知道的最少,类的内部如何实现与调用者或者依赖没有关系,只与当前依赖通信。
MVC
MVC与WEB的Model2
更清楚的指责划分