文档章节

面向对象设计原则

嚣张乾坤
 嚣张乾坤
发布于 2013/05/31 23:22
字数 402
阅读 278
收藏 14

码上生花,ECharts 作品展示赛正式启动!>>>

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

© 著作权归作者所有

嚣张乾坤
粉丝 12
博文 72
码字总数 24949
作品 0
海淀
高级程序员
私信 提问
加载中
请先登录后再评论。
我是怎样教媳妇面向对象编程的

简介 我老婆 Farhana 想要继续软件开发生涯(之前因为我们的第一个孩子出生,她不得不放弃)。我已经有了一些软件设计和开发的经验,所以这几天我就在试着帮助她学习OOD。 由于我早年在软件开...

凡程子
2013/01/09
5.7W
60
【原创】如何用面向对象思想编写代码

一、什么是面向对象 在用面向对象思想写代码之前,先了解一下什么是面向对象? 个人理解: 面向对象:把现实世界里的具体物体或者逻辑世界的逻辑物体,用抽象手段,把这些物体抽象成程序能够...

osc_030273w2
2019/03/15
2
0
写了这么多年代码,你真的了解设计模式么?

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

ThoughtWorks中国
2018/09/19
0
0
Java程序员应当知道的10个面向对象设计原则

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

银月光海
2015/03/16
338
0
迈向大牛的重要一步——掌握设计模式

IT职场的小菜经常有这样的疑问: 为什么一个相似的功能,大牛一会儿就搞定,然后悠闲地品着下午茶逛淘宝;而自己加班加点搞到天亮还做不完。 为什么用户提出需求变更后,大牛只需潇洒地敲敲键...

一枚Sir
2015/04/10
369
0

没有更多内容

加载失败,请刷新页面

加载更多

如何在macOS或OS X上安装pip? - How do I install pip on macOS or OS X?

问题: This post is a Community Wiki . 这篇文章是社区维基 。 Edit existing answers to improve this post. 编辑现有答案以改善此职位。 It is not currently accepting new answers. 它......

fyin1314
36分钟前
11
0
net.sf.JSONException Map中value字段为null,服务响应500

6月2号凌晨系统生产发布,2号白天仓库作业时有仓库拣选单打印面单接口500,不是所有的拣选单掉接口都是500, 当时通过接口响应正产和响应500,逻辑梳理以及数据对比,最后发现是Map 对象里面...

Lbj虞
42分钟前
9
0
SpringMVC异步请求

AsyncController @Controllerpublic class AsyncController { /** * 1. 控制器返回Callable * 2. Spring异步处理,将Callable提交到TaskExecutor,使用隔离的线城进行执行...

与你同行7Melody
今天
5
0
在动态创建的元素上进行事件绑定? - Event binding on dynamically created elements?

问题: I have a bit of code where I am looping through all the select boxes on a page and binding a .hover event to them to do a bit of twiddling with their width on mouse on/of......

javail
今天
19
0
js 使用canvas 旋转 图片

最左边是原始图片,中间是canvas内容,右边是将canvas内容导出到img标签中 canvas绘图时,确定图片的原始尺寸,不是显示的dom大小,需要创建元素后获得 如果使用dom大小的话,会在绘制时只能...

阿豪boy
今天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部