面向对象与结构化编程区别及异同

 第一次写博客,没什么经验,所以从百度上找了一篇,抄下来了!

结构化编程的语言主流的是c语言,采用结构化的编程方式,主要用来编写操作系统。特点:语言灵活非常接近底层,对硬件有强大的访问能力。对于一个比较复杂的系统,往往是自顶向下,逐步求精,分模块的思想来编写。各个模块单独负责完成一个功能。最后通过拼接的方式来组成整个有机的系统。缺点:数据与操作分离,软件极不容易复用,好比已经有一个本科生的学生管理系统,如果要再开发一个研究生学生管理系统,代码可利用性非常低。绝大多数代码都要重写。对于需求经常变动的系统,适应能力极差。适合需求稳定,长期内不会发生太大改变的系统开发。数据与操作分离:既是说数据结构与对数据结构的操作没有封闭,数据结构的改变的会引用相应用到这些结构的代码片段。对于数据结构用到的代码都需要重写(因为不同的数据结构具有不同操作方式,所以结构变了方式必然改变)。

面向对象编程的语言主要有Java,C++等语言。好处在于:

1、数据与操作统一封装在对象内做为一个基本单元。只要对外的接口不变,单元内的数据结构的改变,不会影响到调用此对象的代码。也就是说不会产生任何的影响。

2、极大的提高了软件复用的水平,采用继承的方式,可以继承到父类的全部属性与方法,不需要重建轮子!

  3、具有了可继承的能力还是不够的,需要多态。多态出现的背景就是说,继承可以得到父类的所有,但现在子类有自己独特的一面。子类在继承了父类方法的同时,可以改变父类的方法,而用自己独特的处理方式来解决。这就是要多态性。体现在父类对象指向子类对象,当调用父类对象的方法时,系统自动采用子类这个方法的实现方式。

总结起来:1、封闭性;2、继承性;3、多态性。适合的系统:对于需要经常变动的系统具有极强的适应能力。因为对象与对象的调用都是通过信息(即函数调用)来操作。

  一个新系统的开发方式:如何来分析与设计

  面向对象软件工程包含下面的几个方面:

  1、面向对象的分析(ooa)

  2、面向对象的设计(ood)    //这个阶段会用到相应的设计语言uml

  3、面向对象编码(oop)     //需要编程语言,如c++的技能

  4、面向对象测试(oot)

  5、面向对象软件维护(oosm)

希望对大家有所帮助!!!

你可能感兴趣的:(面向对象与结构化编程区别及异同)