美文网首页
Java六大设计原则

Java六大设计原则

作者: CodeDuan | 来源:发表于2022-01-21 15:12 被阅读0次

    Java六大设计原则介绍

    为什么会有设计原则?

    遵守设计原则的主要目的就是为了能设计出 稳定,健壮,灵活的程序。

    设计原则有哪些?
    1. 单一职责原则(Single responsibility principle)
    2. 接口隔离原则 (Interface Segregation Principle)
    3. 依赖倒置原则 (Dependence Inversion Principle)
    4. 里氏替换原则 (Liskov Substitution principle)
    5. 开闭原则 (Open Closed Principle)
    6. 迪米特法则(Law of Demeter)

    设计原则介绍。
    1. 单一职责原则
      就一个类而言,应该仅有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会导致脆弱的设计。当一个职责发生变化时,可能会影响其它的职责。另外,多个职责耦合在一起,会影响复用性。例如:要实现逻辑和界面的分离。

    2. 接口隔离原则
      客户端不应该依赖它不需要的接口。一个类对另一个类的依赖应该建立在最小的接口上。
      使用多个专门的接口比使用单一的总接口要好。
      一个类对另外一个类的依赖性应当是建立在最小的接口上的。
      一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。
      “不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。”这个说得很明白了,再通俗点说,不要强迫客户使用它们不用的方法,如果强迫用户使用它们不使用的方法,那么这些客户就会面临由于这些不使用的方法的改变所带来的改变。

    3. 依赖倒置原则
      依赖倒置原则是程序要依赖于抽象接口,不要依赖于具体实现。简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

    4. 里氏替换原则
      派生类(子类)对象可以在程式中代替其基类(超类)对象。

    5. 开闭原则
      软件中的类或对象,应该对扩展开放,对修改关闭。

    6. 迪米特法则
      一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话。英文简写为: LOD

    个人理解
    1. 单一职责原则:就是说一个类应该只负责一项职责,如果一个类负责二个及以上职责时,当其中一个职责发生修改,很有可能导致当前类中其他职责出错。所以说一个类中最好只负责一项职责。

    2. 接口隔离原则:就是说在一个类中不应该依赖它不需要的接口,一个类对另外的类的依赖应该建立在最小的接口上,否则或导致当前类中依赖过多无用的接口,最终导致类代码臃肿,难以维护。

    3. 依赖倒置原则:实现细节(实现类)应该依赖于抽象(接口或抽象类),在程序中具体实现往往是多变的,而抽象相对要稳定的多,以抽象为基础的机构比以细节为基础的架构要更稳定,

    4. 里氏替换原则:比如当一个方法接收为父类对象时,可以传入这个父类的子类。在里氏替换原则中,子类应该尽量不要重写父类的方法。如果重写了父类方法,当传入子类时,实际会调用子类的重写后的方法,而无法调用父类中的原方法。

    5. 开闭原则:对扩展开放,对修改关闭,这不是自相矛盾吗?个人认为 对扩展开放是指对程序内部的扩展(提供方)是开放的,而对于程序的外部(使用方)是无法修改的。当程序发生变化时,应该通过扩展的方式来实现变化,而不是修改已有的代码,这样既不会对旧代码造成影响,也满足了程序的变化。

    6. 迪米特法则:又称最小知道法则,一个类对于另一个类知道的越少越好,实际开发中,当一个类使用到另一个类时,最好是由外部传入,或定义在成员变量中,而不应该出现在局部变量中。上面的朋友是指:成员变量、方法参数、返回值,陌生人指:局部变量中的类。

    相关文章

      网友评论

          本文标题:Java六大设计原则

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