文档章节

面向对象设计原则

嚣张乾坤
 嚣张乾坤
发布于 2013/05/31 23:22
字数 402
阅读 265
收藏 14
  我们知道,PHP是一门面向对象的设计语言,在面向对象的设计中,我们在开发过程中应该遵循面向对象设计的五大原则,它们分别是:单一职责原则、接口隔离原则、开放-封闭原则、替换原则、依赖倒置原则,这五大原则也是23种设计模式的基础。
  单一职责原则(Single Responsibility Principle,SRP),它有两个含义:一个是避免相同的职责分散到不同的类中,另一个是避免一个类承担太多职责。
  接口隔离原则(Interface Segregation Principle,ISP),简单的说就是使用多个专门的接口比使用单个接口要好的多。
  开放-封闭原则(Open-Close Principle,OCP),一句话概括就是:一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。
  替换原则(Liskov Substitution Principle,LSP),即为里氏替换原则,它主要是针对的继承的设计原则,它指出:子类型必须能够替换掉它们的父类型、并出现在父类能够出现的任何地方。
  依赖倒置原则(Dependence Inversion Principle,DIP),简单地讲就是将依赖关系倒置为依赖接口,即上层模块不应该依赖于下层模块,它们共同依赖一个抽象(父类不能依赖子类,它们都依赖抽象类);抽象不能依赖于具体,具体应该要依赖于抽象。注意,这里的接口不是狭义的接口。

© 著作权归作者所有

共有 人打赏支持
嚣张乾坤
粉丝 10
博文 72
码字总数 24949
作品 0
海淀
高级程序员
PHP核心技术与最佳实践 读书笔记 第二章 面向对象的设计原则

第二章 面向对象的设计原则 2.1 面向对象设计的五大原则 单一职责原则 接口隔离原则 开放-封闭原则 替换原则 依赖倒置原则 2.1.1 单一职责原则SRP 单一职责有两个含义:一个是避免相同的职责...

lilugirl
2014/03/25
0
0
10个不容错过的Java面向对象设计原则

面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton、Decorator、Observer这样的设计模式,而不重视面向...

牵着蜗牛去西藏
2015/07/16
139
2
Java程序员应当知道的10个面向对象设计原则

面向对象设计原则是OOPS编程的核心, 但我见过的大多数Java程序员热心于像Singleton (单例) 、 Decorator(装饰器)、Observer(观察者) 等设计模式,而没有把足够多的注意力放在学习面向对象的...

银月光海
2015/03/16
0
0
写了这么多年代码,你真的了解设计模式么?

昨天和同事聊到最近他要做的一个培训,大概的课程是这样的: 第一天: 上午:面向对象原则(OO+SOLID ) 下午:设计模式(Design Pattern) 第二天: 上午:简单设计(SimpleDesign) 下午:重...

ThoughtWorks中国
09/19
0
0
2、面向对象的分析与设计方法

面向对象的方法是当前应用最广的程序设计方法 在软件的模块化、可重用性、可扩展性等方面体现出强大的优势。 面向对象的要素: 对象:客观世界里的任何实体都可以称之为对象; 封装: 把对象...

把南墙撞开
2016/04/13
70
0

没有更多内容

加载失败,请刷新页面

加载更多

docker-compose ,docker-stack

1.例子 version: "3"services: php: image: registry.cn-hangzhou.aliyuncs.com/lxepoo/apache-php5 ports: - "38080:80" networks: - my_php_mysql volum......

chenbaojun
25分钟前
1
0
SQL_Server2000示例数据库NorthWind的分析(转)

SQL_Server2000示例数据库NorthWind的分析 表名:Categories(食品类别表) 表结构: 字段名称 数据类型 长度 允许为空 CategoryID(主键) int 4 否 CategoryName nvarchar 15 否 Description ...

QQZZFT
28分钟前
1
0
laravel 5.5 Session store not set on request.

laravel 5.5 数据存入session,会出现Session store not set on request.错误。查了下laravel 5.5将session放到global middleware中,需要laravel的文件 ./app/Http/Kernel.php中的加上一句:...

MichaelShu
今天
1
0
OpenCV VideoCapture.get()参数详解

param define cv2.VideoCapture.get(0) 视频文件的当前位置(播放)以毫秒为单位 cv2.VideoCapture.get(1) 基于以0开始的被捕获或解码的帧索引 cv2.VideoCapture.get(2) 视频文件的相对位置(...

NateHuang
今天
0
0
java基础知识,小栗子

来操作一下数组.....注意带参数的变长数组的使用. package com.avatus;import java.util.Random;import java.util.Scanner;public class Main { public static void main(St...

Oh_really
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部