软考程序 6大设计原则

1.六大设计原则

六大设计原则主要是指:

单一职责原则(Single Responsibility Principle);
开闭原则(Open Closed Principle);
里氏替换原则(Liskov Substitution Principle);
迪米特法则(Law of Demeter),又叫“最少知道法则”;
接口隔离原则(Interface Segregation Principle);
依赖倒置原则(Dependence Inversion Principle)。

单一职责原则(SRP) 单一职责原则要求一个类只负责一个职责。如果一个类承担了多个职责,当其中一个职责发生变化时,可能会影响其他职责的功能,导致代码难以维护。例如,将用户登录和注册功能放在同一个类中会违反该原则。通过拆分职责,可以提高代码的稳定性和可维护性。

里氏替换原则(LSP) 里氏替换原则强调子类必须能够替换父类而不影响程序的正确性。子类应继承父类的行为,并在此基础上扩展功能,而不是改变父类的原有行为。例如,动物类的子类如狗和猫都应正确实现父类的“吃”方法,而不破坏程序逻辑。

接口隔离原则(ISP) 接口隔离原则主张接口应尽量小而精简,避免让类实现不需要的方法。例如,一个形状接口包含绘制和调整大小的方法,但圆形只需要绘制功能,而矩形只需要调整大小功能。将接口拆分为更小的部分,可以减少不必要的依赖,提高代码的模块化和灵活性。

依赖倒置原则(DIP) 依赖倒置原则要求高层模块和低层模块都依赖于抽象,而不是具体实现。抽象不应依赖细节,细节应依赖抽象。例如,通知服务不应直接依赖具体的邮件或短信实现,而是依赖一个通用的通知接口。这样可以在不修改高层模块的情况下轻松扩展新的通知方式。

迪米特原则(LoD) 迪米特原则提倡对象之间的耦合应尽量减少,只与直接相关的对象通信。例如,购物车类可以作为中间层,顾客类通过购物车与书籍类交互,而不是直接调用书籍类的方法。这样可以降低类之间的耦合度,提高代码的可维护性。

开闭原则(OCP) 开闭原则要求软件实体对扩展开放,对修改关闭。当需要添加新功能时,应通过扩展现有代码而不是修改已有代码来实现。例如,通过继承或实现接口来扩展功能,而不是直接修改原有类的代码。这样可以减少对现有功能的影响,提高代码的稳定性。

2.考点

软考设计原则主要包括以下几条:

  • 单一职责原则:一个类应该只有一个引起其变化的原因。

  • 开放-封闭原则:软件实体(类、模块、函数)应该对扩展开放,对修改关闭。

  • 里氏替换原则:子类对象应该能够替换父类对象。

  • 依赖倒置原则:要依赖于抽象而不是具体实现,面向接口编程。

  • 接口隔离原则:使用多个专用的接口比使用单一的接口要好。

  • 迪米特法则:一个对象应当对其他对象尽可能少的了解。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 程序设计的6大原则: 单一职责原则里氏替换原则依赖倒置原则接口隔离原则迪米特法则开闭原则 从根本学好,理解为什么要...
    silencefun阅读 7,001评论 1 4
  • 单一职责原则:类的职责单一 【封装性】 开放封闭原则:修改封闭,扩展放开 里氏替换原则:子类完全可以替换父类 依赖...
    helinyu阅读 4,645评论 0 2
  • 单一职责原则 所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职...
    Liuzjdev阅读 4,296评论 0 0
  • 今天面试被问到程序设计的六大原则,一脸懵逼,什么程序设计六大原则,程序设计还有原则,还六大下面这篇文章介绍的挺全,...
    张_何阅读 3,157评论 0 0
  • 注:本文抄录至设计模式六大原则 设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗...
    黑森林中的小木屋阅读 4,306评论 0 0