计算机科学

首页 > 计算机科学

SOLID (面向对象设计)

2018-08-31 10:19:44     所属分类:面向对象的程序设计

在 程序设计领域, SOLID单一功能、开闭原则、里氏替换、接口隔离以及依赖反转)是由罗伯特·C·马丁在21世纪早期[1] 引入的记忆术首字母缩略字[2][3],指代了面向对象编程和面向对象设计的五个基本原则。当这些原则被一起应用时,它们使得一个程序员开发一个容易进行软件维护和扩展的系统变得更加可能。[1] SOLID所包含的原则是通过引发编程者进行软件源代码的代码重构进行软件的代码异味清扫,从而使得软件清晰可读以及可扩展时可以应用的指南。SOLID被典型的应用在测试驱动开发上,并且是敏捷开发以及自适应软件开发的基本原则的重要组成部分。[1][4]

目录

  • 1 概述
  • 2 参考
    • 2.1 基本概念以及相关主题
    • 2.2 设计和开发原则
  • 3 引用

概述

首字母 指代 概念
S 单一功能原则 认为对象应该仅具有一种单一功能的概念。
O 开闭原则 认为“软件体应该是对于扩展开放的,但是对于修改封闭的”的概念。
L 里氏替换原则 认为“程序中的对象应该是可以在不改变程序正确性的前提下被它的子类所替换的”的概念。

参考契约式设计。

I 接口隔离原则 认为“多个特定客户端接口要好于一个宽泛用途的接口”[5] 的概念。
D 依赖反转原则 认为一个方法应该遵从“依赖于抽象而不是一个实例”[5] 的概念。
依赖注入是该原则的一种实现方式。

参考

基本概念以及相关主题

  • 自适应软件开发
  • 敏捷软件开发
  • 代码复用
  • 程序设计
  • 面向对象程序设计
    • 继承 (计算机科学)
  • 奥卡姆剃刀

设计和开发原则

  • 不要重复你自己
  • GRASP (面向对象设计)
  • KISS原则

引用

  1. ^ 1.0 1.1 1.2 “SOLID Object-Oriented Design” 互联网档案馆的存档,存档日期2010-02-07., Sandi Metz (Duke University), Talk given at the 2009 Gotham Ruby Conference in May, 2009. Last verified 2009-01-15.
  2. ^ “Principles Of OOD”, Robert C. Martin (“Uncle Bob”), butunclebob.com, Last verified 2009-01-14. (Note the “first five principles”, though the acronym is not used in this article.) Dates back to at least 2003.
  3. ^ “Getting a SOLID start.” 互联网档案馆的存档,存档日期2009-02-15., Robert C. Martin (“Uncle Bob”), objectmentor.com. Last verified 2009-01-14.
  4. ^ “Introducing SOLID Object-Oriented Design Principles and Microsoft Unity”[失效链接], Uwe Schmitz, Presentation given at the Regina .NET User Group in May, 2009. Last verified 2009-01-14.
  5. ^ 5.0 5.1 “Design Principles and Design Patterns”, Robert C. Martin (“Uncle Bob”), objectmentor.com. Last verified 2009-01-14.

上一篇:RAII
相关推荐