文档章节

面向对象的理解

o
 osc_2wq8ft8d
发布于 07/04 10:55
字数 704
阅读 29
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

面向对象的三大特性

封装

继承

多态

面向对象的七大原则

单一职责原则:每一个类应该专注于做一件事情。即高内聚,低耦合。类的功能要单一,体积不要过于庞大。

开闭原则:一个对象对扩展开发,对修改关闭。即:对类的改动是通过增加代码进行的,而不是修改现有代码。一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的。比如:一个网络模块,原来只提供服务端功能,而现在要加入客户端功能,name应当在不用修改服务端功能的代码前提下,就能够增加客户端功能的实现代码,这要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来。

里氏替换原则:在任何父类出现的地方都可以用它的子类来替代。子类应当可以替换父类并出现父类能够出现的任何地方。比如,公司搞年度晚会,所有员工可以参加抽奖,那么不管是老员工还是新员工,也不管是总部员工还是外派员工,都应当可以参加抽奖,否则公司就不和谐了。

依赖倒置原则:要依赖于抽象,不要依赖于具体实现。

接口隔离原则:应当为客户提供尽可能小的单独的接口,而不是提供大的总的接口。接口的定义的标准尽可能单一,致力于对接口的多实现。接口规模不要臃肿。

迪米特原则:一个对象应当尽量少的与其他对象之间发生相互作用,是得系统功能模块相对独立。降低耦合

组合/聚合复用原则:尽量使用组合/聚合的方式,而不是使用继承。降低耦合度

简单来说:软件工程中对象之间的耦合度就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。有软硬件的耦合,还有软件各模块之间的耦合。

总的来说:耦合是影响软件复杂程度和设计质量的一个重要因素,在设计上我们应采用以下原则:

如果模块间必须存在耦合,就尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,尽量避免使用内容耦合。

 

o
粉丝 0
博文 63
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
阿里云开放存储服务的C语言SDK--OSSC

OSSC(Aliyun Open Storage Service C SDK)为阿里云开放存储服务(OSS)提供了一套完整易用的C SDK。 OSSC完全采用C语言开发,并实现了类似面向对象的调用方式,遵循了良好的编码规范,目前O...

大卷卷
2012/10/22
4.6K
0
轻量级PHP框架--MonkeyPHP

MonkeyPHP(简称 MK)是一个完全面向对象的轻量级 PHP 框架!主要特点: 一、目录规范,容易部署。 二、支持 MVC 和 REST 等web架构。 三、路由既高效强大,又易于定制。 四、松耦合设计,易...

shalalal
2012/10/23
2.1K
0
C++科学计算库--O2scl

一个面向对象的 C++科学计算库,可用于解方程,最小化,微分,积分,插值,优化,逼近,分析,拟合等。许多类可操作于通用的函数和向量类型。可用于O2scl在Linux,Mac和Windows(Cygwin的)平...

匿名
2012/10/29
4.7K
0
高性能跨语言 RPC--Hprose

Hprose 是高性能远程对象服务引擎(High Performance Remote Object Service Engine)的缩写 —— 微服务首选引擎。 它是一个先进的轻量级的跨语言跨平台面向对象的高性能远程动态通讯中间件...

andot
2012/12/27
6.1W
28
eternal mvc 框架--eternal

spring在设计上真博大精深啊,无论从哪点来说,都非常不错,当然啦大家一直说他的配置麻烦,这应该是人家的设计思想吧,把每个类都看成一个bean,以xml的方式配置关系,就像java的面向对象,...

青青小树
2013/01/09
1.3K
0

没有更多内容

加载失败,请刷新页面

加载更多

汇总你在 Linux 上的命令使用情况

使用合适的命令,你可以快速了解 Linux 系统上使用的命令以及执行的频率。 汇总 Linux 系统上使用的命令只需一串相对简单的命令以及几条管道将它们绑定在一起。当你的历史记录缓冲区保留了最...

osc_bvincwvq
43分钟前
14
0
Hacker News 简讯 2020-08-15

最后更新时间: 2020-08-15 07:01 Welders set off Beirut blast while securing explosives - (maritime-executive.com) 焊工在固定炸药的同时引爆了贝鲁特爆炸 得分:383 | 评论:322 Factor......

FalconChen
今天
24
0
OSChina 周六乱弹 —— 老椅小猫秋乡梦 梦里石台堆小鱼

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @小小编辑 :《MOM》- 蜡笔小心 《MOM》- 蜡笔小心 手机党少年们想听歌,请使劲儿戳(这里) @狄工 :腾讯又在裁员了,35岁以上清退,抖音看到...

小小编辑
今天
143
4
构建高性能队列,你不得不知道的底层知识!

前言 本文收录于专辑:http://dwz.win/HjK,点击解锁更多数据结构与算法的知识。 你好,我是彤哥。 上一节,我们一起学习了如何将递归改写为非递归,其中,用到的数据结构主要是栈。 栈和队列...

彤哥读源码
今天
17
0
Anaconda下安装keras和tensorflow

Anaconda下安装keras和tensorflow 一、下载并安装Anaconda: Anaconda下载 安装步骤: 如果是多用户操作系统选择All Users,单用户选择Just Me 选择合适的安装路径 然后勾选这个,自动配置环境...

Atlantis-Brook
今天
15
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部