zoukankan      html  css  js  c++  java
  • 面向对象与面向过程的区别

    这一周一直在参加学校团队的培训,学习C#的知识,作为一个初窥门径的菜鸟,以下是我对面向对象与面向过程二者差别的一些个人理解,希望大家批评指正。

    面向过程:

    将一件事情按步骤进行,具体到每个操作该如何进行,而且是各种操作混杂在一起,作小小修改可能会改动甚多,可拓展性不好,后期也不易于维护。

    面向对象:

    引入了对象一说,对象中包含属性和方法,属性是用作描述的性质对象,而方法则是描述对象做的动作。譬如说我创建了一个animal的抽象类,并创建一个chicken的派生类继承animal类,在chicken类中定义了Age、Weight等属性和LayEgg、Run等方法,然后,在Main函数中new一个chicken类的对象mychicken出来,那么这个对象便有了自己的属性(年龄、重量等等),它还能生蛋、跑等等,在往后的代码中,我可以让这个mychicken对象生蛋,让它跑,而实现这些功能只需调用对象的方法,具体实现功能的代码已经封装好并存放在类中。

    通过对象,可以把各种不同的操作分类处理。以对象为单位,来完成一系列的动作。就如:我要开车从广州到佛山,如果是面向过程,那么我就要把目光放在每一个细小的动作,从插钥匙、开锁、拉手刹、开启引擎到踩油门等等一系列动作,还有如何行驶等等;但如果是面向对象,我只需要new一个对象“车”,而这个对象里包含了汽油量、水量等等属性,也包含了“开车”、“行驶”、“停车”等等方法,而插钥匙、开锁、拉手刹、开启引擎和踩油门等等开车的行为则写在方法“开车”中(按步骤执行),new了对象“车”后,便可以执行方法“开车”,然后执行方法“行驶”到佛山,到达后执行方法“停车”,至于其中一系列细节的动作,因为都已经封装好了,用户(我)则不需要关心。

    因而,面向对象可拓展性更好,在后期易于维护。

    这有些类似于C语言中的函数调用,在函数中,我们可以写入一连串的代码、步骤,然后通过调用来实现功能,其实这就相当于写在类中的方法,类可以有多个方法,且可以有描述类的属性,这比起单纯调用函数会更加有“特征性”。而且类可以有静态值,可以不new对象直接调用其方法;更有继承、多态,这比起单纯调用函数的功能更多。

    在网上还看到有个用五子棋的运作来讲解两者差别的文章,大家不妨可以看看。

  • 相关阅读:
    通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[中]:管道如何处理请求
    通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[上]:采用管道处理请求
    .NET Core的文件系统[5]:扩展文件系统构建一个简易版“云盘”
    [WCF]缺少一行代码引发的血案
    如何利用ETW(Event Tracing for Windows)记录日志
    .NET Core的日志[5]:利用TraceSource写日志
    .NET Core的日志[4]:将日志写入EventLog
    .NET Core的日志[3]:将日志写入Debug窗口
    .NET Core的日志[2]:将日志输出到控制台
    .NET Core采用的全新配置系统[10]: 配置的同步机制是如何实现的?
  • 原文地址:https://www.cnblogs.com/dgjamin/p/3203882.html
Copyright © 2011-2022 走看看