面向过程
由于是一种 以过程为中心 的编程思想。这些都是以什么正在发生为主要目标进行编程,比如 二狗想做个鱼香肉丝 需要从养鸡种胡萝卜青椒开始全部由二狗来完成。与面向对象明显的不同就是没有 封装、继承、多态、抽象的概念。
缺点:不易维护、不易复用、不易扩展
如果需要增加(删除/修改)新的功能,需要在原代码的基础上新增(删除/修改)代码。
为了在一个很长的函数中找到需要修改的位置,「面向过程」使得开发者不得不浏览大量与修改无关的代码,小心翼翼地修改后,又要反复确认不会影响到类的其他部分。
面向对象
面向对象的四大特征:继承、封装、多态、抽象。
面向对象方法是使用符合我们常规的思维方式来处理问题的,主要是强调把问题直接映射到对象和对象之间的接口上;
如果想做鱼香肉丝,只需要雇佣了一群小弟,每个人只负责一件小事,各司其职,共同完成这道菜。
基于抽象的思想,我们可以对实现事物进行抽象,把实现事物直接映射为开发对象;
应对新需求时,无需更改已经测试通过的既有的类。只需继承抽象类或修改原有的特定类即可。更利于代码的维护以及保证软件的高可维护性以及重用性。
缺点:不可否认性能比面向过程差