美文网首页
面向对象设计原则

面向对象设计原则

作者: Laken | 来源:发表于2018-11-11 17:44 被阅读0次

    七种最常见的面向对象设计原则的基本概念

    1、单一职责原则(Single Responsibility Principle, SRP):
    一个类只负责模块中的一个职责,只有这个职责的改变,才是这个类改变唯一的原因。

    2、接口隔离原则(Interface Segregation Principle, ISP):
    使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。

    3、里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象。

    4、依赖倒转原则(Dependency Inversion Principle, DIP):抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。

    5、开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。

    6、合成复用原则(Composite Reuse Principle, CRP):尽量使用对象组合,而不是继承来达到复用的目的。

    7、迪米特法则(Law of Demeter, LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。

    迪米特法则就是应该尽量减少对象之间的交互,如果两个对象之间不必彼此直接通信,那么这两个对象就不应当发生任何直接的相互作用,如果其中的一个对象需要调用另一个对象的某一个方法的话,可以通过第三者转发这个调用,如代理模式。
    应用在方法上就是一个对象的方法仅能调用以下:

    1. 这个对象本身。
    2. 方法的参数。
    3. 方法内创建的对象。
    4. 对象的任何直接成员属性。

    简单梳理一遍,加深印象,理解后基本上就不会忘记了。


    当我们创建一个类之前会想这个类是用来干嘛的,它的职责是什么。承担的职责越多,它被复用的可能性就越小,当其中一个职责变化时,可能会影响其他职责的运作。因此要将这些职责进行分离,将不同的职责封装在不同的类中,即单一职责原则
    同样的当我们创建一个接口时也要考虑此原则,那么接口中的某个方法它的实现类不需要时怎么办呢,应当将一些方法提取成一个新的接口。即接口隔离原则,做为单一职责原则的补充。


    一般情况父类的功能都是子类功能的子集,所以在使用父类的地方用子类代替后程序都不应该出现问题。即里氏代换原则
    一个接口有多个实现,可以根据需求来切换不同的实现。因此针对接口编程比针对实现编程更灵活,即依赖倒转原则

    里氏代换原则依赖倒转原则都是实现开闭原则的基础,即开闭原则是目标,里氏代换原则是基础,依赖倒转原则是手段


    复用类时尽量使用对象组合,而不是继承。可以降低类与类之间的耦合度,一个类的变化对其他类造成的影响相对较少。即合成复用原则
    站在系统的角度,一个模块发生修改时,应当尽量少地影响其他模块。即迪米特法则

    相关文章

      网友评论

          本文标题:面向对象设计原则

          本文链接:https://www.haomeiwen.com/subject/ljxffqtx.html