`
neufjava
  • 浏览: 1419 次
  • 性别: Icon_minigender_1
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

SOLID的含义?

阅读更多
SOLID的含义?
   面试题中遇到了一个问题,只回答了英语本意。当时蒙了想不到是什么的缩写,回来整理下都有哪些含义。
    一、    英文本意:n. 固体;立体图形; adj. 固体的,坚硬的,无空隙的;非中空的 adv. 一致  实体  实线  固态。
    二、    Solid 是 Social Linked Data 的缩写, 万维网之父 Tim Berners-Lee 提出和只做的一个中心化社交平台  。而 Inrupt 这家公司的使命是“ Re-decentralize the Internet”,即“使互联网重新去中心化”。简单来说,现在我们的数据都在各大互联网巨头手中,基本上你没有办法将其自由导出,而 Solid 设计了一个名为“Linked Data”的规范使数据可以在互联网中自由流通。
   三、SOLID是一些五大原则首字母缩写:
S -SRP:the Single Responsibility Principle:单一职责原则    
  • 一个类只能因为一个理由被修改。
  • A class should have one, and only one, reason to change.    
  • 业务拆分到原子业务
 O-OCP:the Open Closed Principle:开放闭合原则 
  • 对扩展开放,对修改关闭。
  • Entities should be open for extension, but closed for modification.               
  • 不修改已有业务,采用增加业务方式
L-LSP :the Liskov Substitution Principle:里氏替换原则   
  • 使用指向基类指针的函数也可以使用子类。  
  • Functions that use pointers of references to base classes must be able to use objects of derived classes without knowing it.  
  • 子类可替换基类的前提是接口一致,子类不应该破坏父类的方法。
I-ISP :the Interface Segregation Principle:接口分离原则 
  • 不能强制客户端实现它不使用的接口。  
  •  A client should not be forced to implement an interface that it doesn’t use. 
  • 不相关业务的接口要分离
D-DIP : the Dependency Inversion Principle依赖倒转原则    
  • 高层模块不应该依赖于低层的模块,它们都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
  • High-level modules should not depend on low-level modules. Both should depend on abstractions. Abstractions should not depend on details. Details should depend on abstractions.
  • 抽象时不要考虑具体实现方式

面试题的本意是想你回答设计模式。。。唉 加油吧!

 

<audio controls="controls" style="display: none;"></audio>

分享到:
评论

相关推荐

    CSS Border属性solid(实线)使用介绍

    制作过网页的人都有为画线而烦恼的经历,先来认识一下“Border”(画边框),它是CSS... “border”后面的三个参数的含义是:边框线的宽度是:thin(细线);边框线的类型:solid(实线);边框线的颜色:red(红色)。

    css border引发的血案

    在相对论面前,神马都是浮云……要想明白哪种写法最适合你当前的环境,那么就必须先了解这两种写法的含义及优缺点:一、border:0 含义: 它代表着边框:大小为0,在浏览器解析后的结果是没有边框 优点1:在写的时候...

    Master-Emacs-From-Scratch-with-Solid-Procedures:帮你精通Emacs

    Emacs的简单策略是将Meta键(在词源上具有源含义)绑定到源代码或功能。 然后,我们可以触发键Mx(执行用x)来调用该函数。 从Mx表格开始,您可以做任何您想做的事情,例如插入当前日期: 到目前为

    虚拟设计中基于放样特征的零件实体建模技术研究

    虚拟设计中基于放样特征的零件实体建模技术研究,于建伟,刘晓平,本文主要介绍了SolidWorks中放样的含义、放样特征中控制点和引导线的应用。在放样特征中,控制点的放置位置不同可以得到不同的放样�

    面向对象三大特性的意义讲解

    前几天在youtube上看了Bob大叔讲解的SOLID原则,其中有一段提到面向对象的三大特性,收获很多,但是我并不完全赞同他的观点,这里谈谈我的想法: 封装 『封装』第一层含义是信息隐藏。这是教科书里都会讲解的,把类...

    OpenAuth.Net

    logo图标含义 OpenAuth中OA字母的结合体;整体像鱼,授人以渔;你非说像咸鱼,那也是积极向上的咸鱼;中心是个笑脸,微笑面对生活(✿◡‿◡)。项目简介:项目采用经典DDD架构(用沃恩.弗农大神的话,其实这是DDD-Lite...

    JavaScript Table行定位效果

    &lt;table width="100" id="t2" style="border:10px solid #000;"&gt; &lt;td&gt;1 &lt;td&gt;1 alert(document.getElementById("t").offsetWidth); alert(document.getElementById("t2").offsetWidth); 只要给table设置...

    高通量测序对先兆子痫患者胎盘中miRNA组成和3'添加事件的全面调查

    背景:为了深入了解先兆子痫中isomirR谱图和添加3'的isomiRs在先兆子痫中的潜在作用,我们通过应用SOLiD测序平台对不同先兆子痫程度的胎盘样品进行了miRNA库和3'添加事件的综合调查。 主要发现:用3'非模板附加...

    walder:Walder提供了一种在分散的知识图上建立网站或Web API的简便方法

    知识图将数据与该数据的含义结合在一起。 这样就可以合并来自多个知识图的数据,即使不同的独立方维护或托管它们也是如此。 知识图可以通过 POD, 端点, 接口, 文件等进行托管。 使用内容协商,Walder可以通过...

    C++MFC教程

    2、理解Windows的消息机制,窗口句柄和其他GUI句柄的含义和用途。了解和MFC各个类功能相近的API函数。 3、一定要理解MFC中消息映射的作用。 4、训练自己在编写代码时不使用参考书而是使用Help Online。 5、记住一些...

    PT80-NEAT开发指南v1.1

    NEAT 开 发 指南 文档 适用于 PT80 系列 移动数据终端 版本记录 版本号 版本描述 发布日期 V 1.0 初始版本。 2012-04-12 V1.1 修改前三章内容 2012-09-25 目录 第一章 关于本手册.....................................

Global site tag (gtag.js) - Google Analytics