磁力泵厂家
免费服务热线

Free service

hotline

010-00000000
磁力泵厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

硅谷杂志论计算机编程思想的发展新日

发布时间:2020-01-16 02:54:26 阅读: 来源:磁力泵厂家

【硅谷网11月17日文】据《硅谷》杂志2012年第17期刊文称,在计算机编程技术发展过程中出现三种编程思想----面向过程、面向对象和面向方面。对面向过程、面向对象和面向方面三种编程思想的核心理念、相关概念、优缺点及适用性进行分析。

计算机技术产生于二十世纪四十年代,随着软硬件水平的飞速发展和应用范围的扩大,计算机编程思想也历经变化,先后出现了面向过程编程、面向对象编程和面向方面编程这几种编程思想,它们的产生对软件技术的发展起了深远的影响[1]。

1面向过程编程

面向过程编程,又称为结构化编程,C、Pascal和Fortran语言均采用面向过程编程思想。

面向过程编程关注的是解决问题的步骤,先把软件系统分解成多个模块,然后逐步细化,完成整个软件系统。各模块之间存在相互调用和信息传递。

面向过程编程的思维方式易于理解,条理清晰,曾被广泛应用,但随着软件系统规模的扩大和性能要求的提高,面向过程编程的缺陷日益明显。软件系统规模的扩大,使得模块的分解难度加大,模块之间的联系也更加复杂,软件的可靠性难以提高,可维护性差。

2面向对象编程

在20世纪90年代,面向对象编程(OOP)逐步代替了面向过程编程。迄今为止,面向对象成为了主流的编程思想,已经发展到相当成熟的阶段。典型的采用面向对象编程思想的开发语言有C++、Pascal等。

所谓面向对象就是在处理问题时,从该问题所存在的事物本身出发,以类及对象作为基本构造单元,逐步认识事物的属性和行为特征。面向对象的分析过程是人类认识客观世界的过程,更接近于人类思维的方式。

面向对象编程的主要概念如下:

1)对象(object):对象是对客观事物的一个实体的描述,是构成系统的一个基本单位,是分析问题的基准。

2)类(class):类是具有相同属性和服务的一组对象的集合,对属于该类的对象集合提供了统一的抽象描述,内部包括属性和行为两个主要部分。简言之,类是对对象的抽象,而对象是类的实例化。

3)抽象(abstract):抽象是面向对象编程思想的基本的原则之一,是对一类对象中所共有的属性和行为特征的提取。抽象包括数据抽象和行为抽象,数据抽象是指对该类对象的公共属性的抽象,行为抽象是指对该类对象可进行的公共操作的抽象。

4)封装(encapsulation):封装是采用类机制将类的属性和行为进行捆绑,成为一个整体,使得类的内涵丰富而便于使用。

5)继承(inheritance):继承是指子类不但具备父类的属性和行为,还可以具备自身独有的属性和行为,子类的所有属性和行为还可以被它自身的子类继承下去,子类与父类间的继承关系呈现出的层次结构体现出现实世界中不同类型对象的之间的共性和个性关系,因此继承可以解决软件的可重用性问题,简化了程序设计。

6)多态(polymorphism):多态是指具有继承关系的类可以使用同名行为,但行为内涵可以具有不同的定义,不同的对象将会根据自己所属的类来选择在实际运行中所使用的具体行为。多态性机制增加了面向对象软件系统的灵活性,提高了软件的可重用性和可扩充性。

面向过程与面向对象的编程思想最根本的区别在于:前者从操作步骤出发,着重于对操作步骤地分解,将各个操作整合为模块,从而组成整个系统;而后者编程角度从对所处理的事物出发,着重于对事物的属性和行为的抽象,以及不同类型事物之间的共性和个性[2]。

较面向过程编程相比,面向对象编程可以描述更复杂、更接近现实的系统,描述方法灵活,具备良好的可重用性和可扩展性,提高了软件系统的质量和开发效率,保证了对系统项目的有效管理。

但在实际过程中,面向对象编程的缺陷也不容忽视,主要表现为代码散乱和代码纠缠。面向对象的首要工作是对所关注对象的界定,也就是类的设计,要给出类的属性和行为。但在现实过程中,常常会遇到横跨多个不相关模块的公共行为,如记录日志、异常处理、安全控制等等,即横切关注点。系统中频繁出现的横切关注点致使代码散乱,而横切关注点之间的关联又致使代码纠缠。代码散乱和代码纠缠使得面向对象编程的系统结构混乱,难以维护和扩展,降低了软件系统的质量。

3面向方面编程

面向方面编程(AOP)的概念是GregorKiczales在XeroxParc团队于20世纪90年代后期提出的,Filman与Friedman在2000年在OOPSLA关于分离关注点的讨论会上给出了得到公认的面向方面的定义。虽然面向方面编程还处于不完善的阶段,但它已经受到了广泛的关注。目前,采用面向方面编程思想的语言有许多种,如AspectC++、AspectJ等等[3]。

面向方面编程将软件系统中的所有业务逻辑分为核心关注点(CodeConcerns)和横切关注点(CrosscuttingConcerns),核心关注点处理系统中的独立的核心业务,横切关注点处理系统中的相对独立的非核心业务,横切关注点所涉及的业务功能在系统不同位置被多次使用。面向方面编程认为不需要在代码中显式调用横切关注点,而只要指定加入横切关注点的位置,那么系统在运行时自动执行横切关注点的业务功能。

面向方面编程的主要概念如下:

1)关注点(concern):关注点是指对特定业务的处理。软件系统是所有核心关注点和横切关注点的组合,在编码时分别实现,在运行时重新组合起来。软件系统中的关注点分为核心关注点和横切关注点。

2)方面(Aspect):方面类似于面向对象编程中的类,但内涵更丰富。它将切入点和通知结合在一起,用于描述横切关注点。

3)通知(Advice):通知是位于方面中修改行为或属性的代码。方面可以在特定条件下将通知嵌入特定位置,从而达到横切的目的。通知分为三种,before通知、after通知和around通知,分别表示操作是在连接点之前、之后或代替连接点。

4)切入点(Pointcut):切入点通过定义切入点表达式来过滤出感兴趣的连接点,是方面的作用点。

5)连接点(Joinpoint):连接点是主程序和方面的连接处,指明了织入横切代码的位置。

6)织入(Weaving):织入是指将通知的代码插入通知所对应的连接点的代码中,得到一个完整的软件系统。

面向方面编程的开发步骤包括方面分解、关注点实现和织入。方面分解是指将软件系统分解为核心关注点和横切关注点。关注点实现是指对所分解的关注点的实现,核心关注点可以采用面向对象编程技术,横切关注点可以采用面向方面编程技术。织入是指通过创建方面来制定制定关注点之间的实施规则,从而得到最终的系统[4]。

面向方面编程采用了横切关注点模块化来完成系统中业务逻辑的划分,实现了关注点的分离,较面向对象编程相比降低了系统实施的难度,解决了代码散乱和代码纠缠的问题。方面的设计使得系统的松散耦合性更强,代码冗余小,系统易维护,易扩充。

虽然面向方面编程已受到广泛的关注和应用,但其本身存在的问题也给使用带来了一定的困难。例如切入点与基础程序的耦合性较强,基础程序结构的变化就可能导致意外的连接点丢失[5]。因此目前在开发过程中,面向方面编程技术只作为面向对象编程技术的补充加以运用。

4总结

面向过程、面向对象和面向方面这三种编程思想是随着计算机软件规模的扩大和架构的复杂而依次出现的,各有其利弊,均得到应用。现在软件系统开发普遍采用的是面向对象编程;面向过程编程适用于功能简单而且可以用流程来表示的软件系统;面向方面编程目前只在软件系统的局部使用,作为对面向对象编程的补充。

作者简介:

高云(1970-),女,河北人,专业学位:计算机应用工程硕士,职务:专任教师,职称:副教授,高工,研究方向:高职教育,软件技术。

(责任编辑:硅谷网·)

上一篇:中国风机网:计算机集成系统促进风机行业的高效运转

下一篇:中国留学生开发IOS免费游戏《坍缩与湮灭:铸日者》 对“硅谷杂志:论计算机编程思想的发展”发布评论

网上挂号中心

预约挂号服务中心

名医汇