面向对象的三个基本特征和五种设计原则
参考链接
https://blog.csdn.net/cancan8538/article/details/8057095
https://www.jianshu.com/p/7a5b0043b035
三大基本特征
封装
隐藏对象的属性和实现细节,仅对外提供公共访问方式,将变化隔离,便于使用,提高复用性和安全性。
继承
提高代码复用性;继承是多态的前提。
多态
父类或接口定义的引用变量可以指向子类或具体实现类的实例对象。提高了程序的拓展性。
五种设计原则
单一职责原则
类的功能要单一,不能包罗万象,跟杂货铺似的。同时,本原则还揭示了内聚性和耦合生,基本途径就是提高内聚性;如果一个类承担的职责过多,那么这些职责就会相互依赖,一个职责的变化可能会影响另一个职责的履行。其实OOD的实质,就是合理地进行类的职责分配。
开放封闭原则OCP
一个模块对于拓展是开放的,对于修改是封闭的,想要增加功能热烈欢迎,想要修改,哼,一万个不乐意。
里式替换原则LSP
子类可以替换父类出现在父类能够出现的任何地方。
本原则和开放封闭原则关系密切,正是子类型的可替换性,才使得使用基类型模块无需修改就可扩充。
依赖倒置原则DIP
高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。就是你出国要说你是中国人,而不能说你是哪个村子的。比如说中国人是抽象的,下面有具体的xx省,xx市,xx县。你要依赖的是抽象的中国人,而不是你是xx村的。
接口分离原则ISP(the Interface Segregation Principle ISP)
设计时采用多个与特定客户类有关的接口比采用一个通用的接口要好。就比如一个手机拥有打电话,看视频,玩游戏等功能,把这几个功能拆分成不同的接口,比在一个接口里要好的多。
面向对象的三个基本特征和五种设计原则相关推荐
- 面向对象的三个基本特征 和 五种设计原则
面向对象的三个基本特征 和 五种设计原则 来源: http://blog.csdn.net/cancan8538/article/details/8057095 一.三个基本特征 面向对象的三个基本特 ...
- [转]面向对象的三个基本特征
面向对象的三个基本特征(讲解) 面向对象的三个基本特征是:封装.继承.多态. 封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可 ...
- 面向对象的三个基本特征
面向对象的三个基本特征 面向对象的三个基本特征是:封装.继承.多态. 封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己 ...
- 面向对象的三个基本特征是:封装、继承、多态及其五大原则
阅读数:634 面向对象的三个基本特征是:封装.继承.多态 封装 封装最好理解了.封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方 ...
- 面向对象的七种设计原则
下面的截图:主要讲述了七种设计原则定名称,定义以及使用的频率.  原则一:(SRP:Single responsibility principle)单一职责原则又称单一功能原则 核心:解耦和增强内聚 ...
- 机械设计经验分享,兼顾这五个设计原则,才能真正做好非标设计
今天我们就针对机械行业的非标产品设计来谈一下,在设计过程中值得大家留意的五个原则,这五个原则相互协同和配合,互为条件与基础,只有兼顾了这五个设计原则,才能真正完成好一个非标产品的设计. 1.成本优先原 ...
- 面向对象的三个基本要素,五个基本原则
文章摘自http://blog.csdn.net/Lee_Xq_/article/details/38994047 在C++ primer及相关书籍中未看到过这个知识点,特此记录一下. 三个基本元素: ...
- python面向对象的三个基本特征 含义和作用简介_面向对象语言的三个基本特征各自特点及优势...
展开全部 面向对象语言的三个基本特征:识认性.类别性.多态性:优势:继承性,在基本层次关系的不e69da5e6ba9032313133353236313431303231363533313334336 ...
- 五大地形等高线特征_五种基本地形特征
<五种基本地形特征>由会员分享,可在线阅读,更多相关<五种基本地形特征(13页珍藏版)>请在人人文库网上搜索. 1.,五种基本地形特征,.,湖南教育版,等高线地形图,.,地形图 ...
最新文章
- 15级团队学习成果汇报 -- 利用C#语言实现展览厅
- Commvault公司营收增长 但本季度仍身陷亏损
- MySQL的库表详细操作
- ElasticSearch权威指南学习(结构化查询)
- c语言转职,魔兽地图:3C转职版5.0C
- java左手握右手_在队列中,向中看齐举哪个手?
- Apache POI组件操作Excel,制作报表(四)
- 再还校园一个干净、健康的网络环境
- 机器人动力学-牛顿-欧拉方程
- c#字符串的格式化输出
- 【软件网每日新闻播报│第9-27期】
- BUUCTF——rsa系列(4)
- Protocol Buffer 时间类型定义
- 用php爬取网页数据
- CSS设置 background-image透明度小技巧
- 新装Ubuntu18.04调校笔记
- 识别主机名和IP地址
- Linux中SDIO命令,linux device driver之sdio驱动编程分享
- 手机展示mysql实例_mysql 视图示例
- 自制快速边沿脉冲发生器
热门文章
- 计算机电源整流滤波,整流、滤波电路工作原理
- 4种整流5种滤波电路总结
- jvm系列(十一):JVM演讲PPT分享
- antd Card组件默认选中
- MODIS地表温度数据11A2的质量控制
- 生态流量监测管理系统
- 学好数据库,看这9本书就够了
- 王万生计算机组成原理第三版,王万生《计算机组成原理》清华大学出版社完整答案...
- 阿里云无影云电脑ubantu中文失败解决方案
- 解决”recipient.call{value : amount}(““)“问题