面向对象的原则是面向对象的目标,而设计模式是为了实现这些原则的手段和方法。这也就是为什么要有设计模式。
面向对象的原则:
1. 单一职责原则
一个类只完成一个功能,完成相同功能的模块封装在一个类里。
2. 开闭原则
一个类的代码要对修改封闭,对拓展开放。即,不能修改类内部的代码,如果要修改,需要使得接口函数中使用抽象类,通过修改继承抽象类的子类的功能来修改。或者通过Class.forName(“某个类的字符串”)来动态的获得类的信息,修改配置文件获得不同的类从而来修改。开闭原则是面向对象设计的目标。
3. 里氏替换原则
父类可以透明的替换成子类。一个类的实例如果能够正确运作在一个函数里,那这个类的子类的实例也可以在这个函数里面正确运行。父类可以透明的替换成子类,也就侧面要求了子类不能有比父类更加严格的访问限制和抛出更多的异常。
4. 依赖倒置原则
面向抽象编程。即,模块依赖的应该是抽象类和接口,依赖类是面向对象实现开闭原则的重要手段。其中很重要的是依赖注入(其实就是对依赖的抽象类赋值)。
5. 组合复用原则
即优先使用成员变量的组合和聚合,把依赖的类作为成员变量。组合和聚合的依赖可以通过类似于spring依赖注入来自动装配。
6.迪米特法则
一个软件实体应当尽可能少的和其他实体发生相互作用,即一个类或者函数尽可能少的和其他类或者函数有最少的依赖。
依赖是成员变量,函数的参数,函数内的局部变量等。通俗的说就是没有那项就没有办法运行的就是依赖。