面向对象的三大基本特性和五大基本原则(solid)

三大基本特性:封装,继承,多态


  • 封装

把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行隐藏。

封装也称信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来,使其成为一个不可分割的整体,数据隐藏在抽象数据内部,尽可能的隐藏数据细节,只保留一些接口使其与外界发生联系

参考:https://blog.csdn.net/dengminghli/article/details/54634206


  • 继承

可以让某个类型的对象获得另一个类型的对象的属性的方法

继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。

参考:https://blog.csdn.net/dengminghli/article/details/54564828


  • 多态

一个类实例的相同方法在不同的情形下有不同的表现形式。

参考:https://blog.csdn.net/dengminghli/article/details/54809876


五大基本原则:solid 立方体


  • s(Single-Resposibility Principle)  SRP 单一职责原则

是指一个类的功能要单一,不能包罗万象。如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌的,但效率却高不起来。

一个类,最好只做一件事,只有一个引起它的变化。单一职责原则可以看做是低耦合、高内聚在面向原则上的引申,以提高内聚性来减少引起变化的原因。


  • o(Open-Closed principle)OCP 开放封闭原则

软件实体是可扩展的,而不可修改的。也就是,对扩展开放,对修改封闭。

一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。比如:一个网络模块,原来只服务端功能,而现在要加入客户端功能,

那么应当在不用修改服务端功能代码的前提下,就能够增加客户端功能的实现代码,这要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来。


  • l(Liskov-Substituion Principle )LSP 替换原则

子类必须能够替换基类。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证运行期内识别子类,这是保证继承复用的基础。

子类应当可以替换父类并出现在父类能够出现的任何地方。比如:公司搞年度晚会,所有员工可以参加抽奖,那么不管是老员工还是新员工,

也不管是总部员工还是外派员工,都应当可以参加抽奖,否则这公司就不和谐了。


  • i( Interface-Segregation Principle)ISP 接口分离原则

使用多个小的专门的接口,而不要使用一个大的总接口。就是每一个接口都执行一个专门的功能,用什么调什么。这样可以提高代码的灵活性,还可以降低类间的耦合性。提高稳定性。

模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来


  • d(Dependecy-Inversion Principle)DIP 依赖原则

具体依赖抽象,上层依赖下层。假设B是较A低的模块,但B需要使用到A的功能,

这个时候,B不应当直接使用A中的具体类: 而应当由B定义一抽象接口,并由A来实现这个抽象接口,B只使用这个抽象接口:这样就达到

了依赖倒置的目的,B也解除了对A的依赖,反过来是A依赖于B定义的抽象接口。通过上层模块难以避免依赖下层模块,假如B也直接依赖A的实现,那么就可能造成循环依赖。一个常见的问题就是编译A模块时需要直接包含到B模块的cpp文件,而编译B时同样要直接包含到A的cpp文件。


参考:

https://blog.csdn.net/u014745848/article/details/50783842

https://blog.csdn.net/david840316/article/details/51433412

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿姨不可以嘛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值