【1】⾯向过程和⾯向对象的⽐较
⽹上发现了⼀篇⽂章,说了⼀下OP与OO的不同,并且打了⼀个⽐喻,通俗易懂。
有⼈这么形容OP和OO的不同:⽤⾯向过程的⽅法写出来的程序是⼀份蛋炒饭,⽽⽤⾯向对象写出来的程序是⼀份盖浇饭。
所谓盖浇饭,北京叫盖饭,东北叫烩饭,⼴东叫碟头饭,就是在⼀碗⽩⽶饭上⾯浇上⼀份盖菜,你喜欢什么菜,你就浇上什么菜。我觉得这个⽐喻还是⽐较贴切的。
蛋炒饭制作的细节,我不太清楚,因为我没当过厨师,也不会做饭,但最后的⼀道⼯序肯定是把⽶饭和鸡蛋混在⼀起炒匀。
盖浇饭呢,则是把⽶饭和盖菜分别做好,你如果要⼀份红烧⾁盖饭呢,就给你浇⼀份红烧⾁;如果要⼀份青椒⼟⾖盖浇饭,就给浇⼀份青椒⼟⾖丝。
蛋炒饭的好处就是⼊味均匀,吃起来⾹。如果恰巧你不爱吃鸡蛋,只爱吃青菜的话,那么唯⼀的办法就是全部倒掉,重新做⼀份青菜炒饭了。
盖浇饭就没这么多⿇烦,你只需要把上⾯的盖菜拨掉,更换⼀份盖菜就可以了。盖浇饭的缺点是⼊味不均,可能没有蛋炒饭那么⾹。
到底是蛋炒饭好还是盖浇饭好呢?其实这类问题都很难回答,⾮要⽐个上下⾼低的话,就必须设定⼀个场景,否则只能说是各有所长。如果⼤家都不是美⾷家,没那么多讲究,那么从饭馆⾓度来讲的话,做盖浇饭显然⽐蛋炒饭更有优势,他可以组合出来任意多的组合,⽽且不会浪费。
盖浇饭的好处就是“菜”“饭”分离,从⽽提⾼了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。⽤软件⼯程的专业术语就是“可维护性”⽐较好,“饭”和“菜”的耦合度⽐较低。
蛋炒饭将“蛋”“饭”搅和在⼀起,想换“蛋”“饭”中任何⼀种都很困难,耦合度很⾼,以⾄于“可维护性”⽐较差。
软件⼯程追求的⽬标之⼀就是可维护性,可维护性主要表现在3个⽅⾯:可理解性、可测试性和可修改性。⾯向对象的好处之⼀就是显著的改善了软件系统的可维护性。
【2】⾯向对象开发的优点
1、易维护。采⽤⾯向对象思想设计的结构,可读性⾼,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是⾮常⽅便和较低成本的。
2、质量⾼。在设计时,可重⽤现有的,在以前的项⽬的领域中已被测试过的类使系统满⾜业务需求并具有较⾼的质量。
3、效率⾼。在软件开发时,根据设计的需要对现实世界的事物进⾏抽象,产⽣类。使⽤这样的⽅法解决问题,接近于⽇常⽣活和⾃然的思考⽅式,势必提⾼软件开发的效率和质量。
4、易扩展。由于继承、封装、多态的特性,⾃然设计出⾼内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,⽽且成本较低。
【3】⾯向对象的特点
1、利⽤特定软件直接从对象客体的描述到软件结构的转换。
2、解决了传统结构化⽅法中客观世界描述⼯具与软件结构的不⼀致性。3、减少了从系统分析、设计到软件模块结构之间的多次转换映射的繁杂过程。
【4】C++语⾔的优点
1、是⼀种全新的系统分析设计⽅法(对象、类、结构属性、⽅法)。2、适⽤于各类信息系统的开发。
3、实现了对客观世界描述到软件结构的直接转换 ,⼤⼤减少后续软件开发量。4、开发⼯作的重⽤性、继承性⾼,降低重复⼯作量。5、缩短了开发周期。
【5】C++语⾔的缺点
1、需要⼀定的软件⽀持环境。
2、不太适宜⼤型的MIS开发,若缺乏整体系统设计划分,易造成系统结构不合理、各部分关系失调等问题。3、只能在现有业务基础上进⾏分类整理,不能从科学管理⾓度进⾏理顺和优化。4、初学者不易接受、难学。
Good Good Study, Day Day Up.顺序 选择 循环 总结
因篇幅问题不能全部显示,请点此查看更多更全内容