您的位置:首页 > 编程语言 > C语言/C++

C++ 面向对象与面向过程

2017-04-04 16:19 260 查看
一,面向对象与面向过程的区别

面向过程:面向过程是一件事“该怎么做”,是分析解决问题的步骤,然后用函数把这些步骤一步一步的实现,然后在使用的时候一一调用则可。

面向对象:面向对象是一件事“该谁来做”,然后那个“谁”就是对象。是以对象为核心,关注需要哪些对象,对象需要具备哪些功能,然后创建出解决问题的对象,利用对象调用相应的方法即可。采用OOP方法时,首先从用户的角度考虑对象,描述对象所需的数据以及描述用户与数据交互所需的操作。完成对接口的描述后,需要确定如何实现接口及存储数据。

二,面向过程的优缺点

1,优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源。比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。

2,缺点:没有面向对象易维护、易复用、易扩展。

三,面向对象的优缺点

1,优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出高内聚低耦合的系统,使系统更加灵活、更加易于维护。

2,缺点:性能比面向过程低。

四,面向对象的精髓

1,面向对象的精髓在于封装

面向对象要求数据应该尽可能被封装,越多的东西被封装,就越少的人可以看到他,而越少的人可以看到他,我们就有越大的弹性去改变他。因此,越多的东西被封装,我们改变那些东西的能力就越大。这就是我们推崇封装的原因,他使我们改变事物而只影响有限客户。

五,面向对象的五大原则

封装、继承、多态只是类的三大特性,在程序设计时并不是说使用到了这三个特性就是面向对象,真正的面向对象的设计要满足下面五个原则。

1,单一职责原则

是指一个类的功能要单一,一个类最好只做一件事情,高内聚低耦合的体现。

2,开放封闭原则

       扩展方面是开放的,修改方面是封闭的。开放封闭原则是所有面向对象原则的核心。软件设计本身所追求的目标就是封装变化、降低耦合,而开放封闭原则正是对这一目标的最直接体现。其他的设计原则,很多时候是为实现这一目标服务的。

      “世界上没有一个软件是不变的”,这些言论是对软件需求最经典的表白。从中透射出一个关键的意思就是,对于软件设计者来说,必须在不需要对原有的系统进行修改的情况下,实现灵活的系统扩展。而如何能做到这一呢?        只有依赖于抽象。实现开放封闭的核心思想就是对抽象编程,而不对具体编程,因为抽象相对稳定。让类依赖于固定的抽象,所以对修改就是封闭的。而通过面向对象的继承和多态机制,可以实现对抽象体的继承,通过覆写其方法来改变原有的行为,实现新的扩展方法,所以对于扩展就是开放的,这是实施开放封闭原则的基本思路。常用于实现的设计模式主要有Template
Method模式和Strategy模式。

3,替换原则

子类应当可以替换父类,并能出现在父类能出现的任何位置上,主要就是继承的体现。继承是一项非常优秀的语言机制,它可以提高代码共享与代码的可扩展性。这个原则的核心思想就是,良好的继承定义了一个规范。

应用场景:CS是一款经典的射击游戏,我们描述一下里面枪类的实现。

 


4,依赖原则

依赖倒置原则,它转换了依赖,高层模块不依赖于低层模块的实现,而低层模块依赖于高层模块定义的接口。通俗的讲,就是高层模块定义接口,低层模块负责实现。有助于我们开发出高性能、易扩展的程序。

5,接口分离原则

模块间要通过抽象接口隔离开,不通过具体的类关联,降低耦合度。常用于实现的设计模式主要有Abstract Factory模式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: