S.O.L.I.D原则
SILID原则:
是面向对象编程和设计的重要原则,在我们编程的过程中是谨记的重点,所以对其有深刻了解是必须的。
《 Clean Code(代码整洁之道)》作者Robert C. Martin,书中就有关于这些原则的讲解和使用,推荐你好好读一下这本书,这本书封面上就有一句话“细节之中自有天地,整洁成就卓越代码。”

单一责任原则(SRP)
只有一个理由去修改一个类。例如,如果一个业务规则的改变会导致这个类的修改,那么,数据库、界面、报表格式或系统任何其它的部分的改变都不该迫使这个类做修改。
- Each responsibility should be a separate class, because each responsibility is an axis of change.
- A class should have one, and only one, reason to change.
- If a change to the business rules causes a class to change, then a change to the database schema, GUI, report format, or any other segment of the system should not force that class to change.
开发/关闭原则(OCP)
  软件构成(类,模块,方法等)向扩展行为开放,向修改行为关闭。
  软件实体应该是可扩展,而不可修改的。也就是说,对扩展是开放的,而对修改是封闭的。这个原则是诸多面向对象编程原则中最抽象、最难理解的一个。
Liskov替换原则(LSP)
子类必须能够用来当作基类使用。如果类A继承类B,任何能使用A的地方,B也同样可以使用。
当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系
  1. 高层模块不应该依赖于低层模块,二者都应该依赖于抽象 
  2. 抽象不应该依赖于细节,细节应该依赖于抽象
接口分离原则(ISP)
  一个类对另一个类的依赖应该限制在最小化的接口上。
  The dependency of one class to another one should depend on the smallest possible interface.
反向依赖原则(DIP)
依赖抽象层(接口),而不是具体类。
参考张善友大神的讲解:https://www.cnblogs.com/shanyou/archive/2009/09/21/1570716.html
S.O.L.I.D原则的更多相关文章
- 面向对象S.O.L.I.D原则
		面向对象的五大原则,又称S.O.L.I.D原则: S(SRP, Single Reponsibility Principle): 单一职责原则,一个类应有且只有一个职责(或只有一个引起其变化的原因) ... 
- S.O.L.I.D: PHP 面向对象设计的五个基准原则
		S.O.L.I.D 是首个 5 个面向对象设计 (OOD) 准则的首字母缩写,这些准则是由 Robert C. Martin 提出的,他更为人所熟知的名字是 Uncle Bob. 这些准则使得开发出易 ... 
- Atitit.软件开发的几大规则,法则,与原则Principle  v3
		Atitit.软件开发的几大规则,法则,与原则Principle v31.1. 修改历史22. 设计模式六大原则22.1. 设计模式六大原则(1):单一职责原则22.2. 设计模式六大原则(2):里 ... 
- 面向对象设计SOLID五大原则
		转载自:码农社区,http://w3croom.com/read.php?tid-4522.html 今天我给大家带来的是面向对象设计SOLID五大原则的经典解说. 我们知道,面向对象对于 ... 
- [转] SOLID五大设计原则
		我们知道,面向对象对于设计出高扩展性.高复用性.高可维护性的软件起到很大的作用.我们常说的SOLID五大设计原则指的就是: S = 单一职责原则 Single Responsibility ... 
- SOLID原则(OOD&OOP)
		SOLID原则是面向对象编程和面向对象设计的头五大原则.学习及应用这五大原则可以构建一个易于维护和扩展的应用程序,我们一起看看到底是那五大原则. S--单一责任原则(SRP) --Single Res ... 
- Atitit.软件开发的几大规则,法则,与原则。。。attilax总结
		Atitit.软件开发的几大规则,法则,与原则... 1. 设计模式六大原则 2 1.1. 设计模式六大原则(1):单一职责原则 2 1.2. 设计模式六大原则(2):里氏替换原则 2 1.3. 设计 ... 
- Atitit.软件开发的几大规则,法则,与原则p821.doc
		Atitit.软件开发的几大规则,法则,与原则p821.doc 1. 设计模式六大原则2 1.1. 设计模式六大原则(1):单一职责原则2 1.2. 设计模式六大原则(2):里氏替换原则2 1.3. ... 
- [译]开发者须知的SOLID原则
		原文:SOLID Principles every Developer Should Know – Bits and Pieces SOLID Principles every devloper sh ... 
随机推荐
- ELK-Stack 最后一次全篇文档
			简介: ELK-Stack 日志收集系统.最后一次全篇记录的笔记,之后关于 ELK 的笔记都将是片段型.针对性的. 环境介绍: ELK-Stack:192.168.1.25 ( Redis.LogS ... 
- Keepalived 角色选举
			简介: 1.在 Keepalived 集群中,其实并没有严格意思上的主.备节点,虽然可以在 keepalived.conf 中定义 state 选项为 MASTER 状态,但是这并不意味着此节点就一直 ... 
- Zabbix Agent 自动、主动注册
			简述: 今天来研究一下 Zabbix 的主动注册功能. 当你有十台机器需要监控时,你手动去添加是没有问题的.但是当你有五十台.上百台或更多服务器要监控时,你会怎么做 ? Active Agent Au ... 
- 配置python的豆瓣source
			sunny@sunny-ThinkPad-T450:~$ mkdir ~/.pip sunny@sunny-ThinkPad-T450:~$ gedit ~/.pip/pip.conf [global ... 
- css实现栅格的方法
			1. 方法一 1.1. 效果 2. 方法二 2.1. 效果 3. 代码 3.1. Html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 T ... 
- Avro总结(RPC/序列化)
			Avro(读音类似于[ævrə])是Hadoop的一个子项目,由Hadoop的创始人Doug Cutting(也是Lucene,Nutch等项目的创始人,膜拜)牵头开发,当前最新版本1.3.3.Avr ... 
- xdebug 一直报错 upstream timed out (110: Connection timed out) while reading response header from upstream
			本地主机(Windows环境192.168.66.1)访问虚拟机(192.168.66.139)里面的搭建的php环境(系统centos6.5版本,php版本是5.5.30 ,xdebug 2.4.0 ... 
- eclipse 环境安装
			eclipse 安装SVN http://blog.csdn.net/rilaohn/article/details/70312827 eclipse server 不见了 http://www.jb ... 
- RTX Server SDK跨服务器
			反向单点登录RTX,即通过腾讯通登录到其他的系统,登录腾讯通后其他的系统不用输入用户名和密码即可登录.可能有二种情况.腾讯通和其他系统在同一台服务器上或在不同的服务器上.要调用腾讯通的登录验证接口的系 ... 
- Openssl CA.pl命令
			一.简介 CA.pl是证书操作的友好接口,简化了一些相似的证书创建或管理操作 二.语法 CA.pl [-?] [-h] [-help] [-newcert] [-newreq][-newreq-nod ... 
