前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇计算机编程范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
随着时代的进步,计算机编程新技术已经广泛的应用到生活中的各个领域,工程测量工作同样如此。转化以及计算一类的工作均为工程测量中的重要内容,因此笔者就其中Excel编程新技术进行分析,对计算机程序进行测试、整体的部署以及安全设置,完成转化以及测量一类的工作。经研究发现,计算机编程新技术可以对部署工作提供更多支持,更好的完成数据处理工作,项目策略的制定以及测量工作效率也有所提高。
【关键词】工程测量 计算机 编程新技术
如今,人们通过数字测量仪器完成工程测量工作,地形测图与施工放样工作均需要全站仪这一数字测量仪器提供数据支持,计算机可以对数据进行计算,进而获取测设点的位置信息,放样工作便能够顺利的完成。另外,把位置坐标信息转化为绘图软件格式可以为地形测绘工作提供支持,通过Excel软件中的转换、计算以及编辑等功能可以对工程测量工作的需要进行满足。
1 计算机编程新技术的研究
1.1 部署及设置安全
待计算机应用软件设计开发工作完成,需要在人们需要的位置进行部署工作,而使用者若想使net程序正常工作,应满足其两方面条件,即安全性以及环境方面的要求。前者的主要内容便是用户应用程序时,需要为各个级别、分工不同的技术人员设置相应的权限,后者的主要内容是需要具备一定环境对应用程序提供支持。基于以上方面的情况,技术人员在对应用软件进行部署时,需要对部署工作进行严肃对待,仅把NET Excel软件传到客户机无法满足用户需求。
NET框架具有一定安全功能,通过相应的平台可以发挥安全功能的作用,此外,托管程序功能同样具有一定的安全设计,技术人员可以将其与框架中涵盖的安全功能进行结合,使数字证书技术与框架安全功能共同发挥作用。测试软件代码的功能同样蕴含在NET框架安全功能之内,进而对安全性情况进行判断。NET配置工具可以为代码部署工作提供一定支持,安装文件亦是如此,就前者而言,技术人员及使用者能够利用安全代码成员条件中Projects特定程序组对程序进行展开操作,并完成子程序的添加操作,将后缀为bin的项目从URL内筛选出来,完成操作。对权限进行设置的过程中,可采用Full Trust的方法设置为完全信任,之后,需要使用的代码便能够在计算机设备上正常运行。
1.2 VSTO― .NET的平台技术
随着Internet的发展和进步,人们已经完成了将统一、可靠以及安全特点集于一身的平台设计工作,即NET平台,其中主要包含了三方面的内容:Visual 、类库以及CLR。该框架平台能够兼容各类编程语言,为跨编程的程序开发工作提供支持和平台。后期,人们将NET平台与Excel2003进行融合,VSTO― .NET的平台技术也应运而生。
在办公软件自定义工具包中,可以创建一些程序,例如VSTO等。VS的开发环境适宜进行定制代码的开发和创建工作,并未将VBE以及VBA应用其中,基于此,用户在运行一些简单的代码或是对工程测量中复杂的解决方案进行处理时,VSTO可以为其提供更多支持和便利。一些编程问题也可以通过VSTO中的Office增强对象进行处理。例如,用户在对工作表以及工作簿进行搜索和查询时,可以从VSTO中进行迅速的筛选,查询范围也比较广。此后增强功能无法在本地文档中进行查询,换言之,人们在编程过程中需要对表格进行.NET的标注,之后可以对数据进行转化以及传导一类的操作,并与数据控件进行直接的绑定操作。
1.3 计算程序开发
如今,人们通过VSTO― .NET的平台可以进行程序的开发工作,为工程测量工作提供更多支持,例如,水准及导线的测量、曲线计算等方面工作等。技术人员在对程序进行设计时,可以利用VSTO― .NET的平台,将以及C#一类的编程语言进行结合应用。在Visual 2009环境下进行开发操作,对Excel代码进行开发,完成工程y量工作中的计算等工作。
技术人员对程序进行开发时,需要对应用程序、习惯以及开发语言一类的因素进行考虑,确保几方面因素保持较高的一致性,这样技术人员便不再需要对新的编程语言进行学习,程序代码以及应用软件的安全性大幅度提升,对知识产权的保护工作也可以提供一定支持。进行工程测量工作时,可以在Excel中输入所需计算的信息,这种做法可以为普通用户的使用提供更多方便,一旦用户需要对文档进行打印、编辑一类的操作时,可以通过应用程序完成。技术人员在对软件进行设计时,不但考虑到工程测量工作方面的需求,同样对操作界面是否便于交互方面的因素进行考虑,用户可以对数据颜色、字形以及大小一类的参数进行调整,将电子表格与计算功能进行完美融合,设计出的软件也因此具有更高的实用价值和安全性。
1.4 位置数据格式的转换
进行工程测量工作时,使用各类数字测绘装置存储坐标数据,分隔符也存在一定区别,基于以上情况,为了使测绘软件彼此之间实现数据的共享,应对数据格式进行调整,下面对RTK以及CASS软件之间的格式转换进行说明:三维坐标可以被认为是二者通用的公式,可以对二者进行联系和转换。点属性是RTK手簿的重要标志,与CASS软件之间具有通用的.DAT定义,因此在设置数据格式时缴柚贸.DAT格式的文件,方便编程文件的导出及导入操作。人们可以利用IGS对CASS程序中坐标数据进行格式的转换。
2 结束语
综上所述,计算机编程新技术在工程测量工作中已经有了广泛的应用,通过平台技术以及软件方面的开发,对数据格式进行转化,可以为实际测绘应用提供更多支持。VSTO技术较其他技术相比具有一定优势,能够充分发挥Office Excel新功能的作用,转码一类的程序有所减少。计算机编程新技术已经实现了一次技术性变革,程序的开发工作比较简单,为部署以及操作一类的工作提供更多支持,附和水准路线的测量计算工作也可以顺利进行,策略的制定工作也变得更加科学。
参考文献
[1]王晶辉.工程测量中的计算机编程新技术浅析[J].信息与电脑,2016(01):24,26.
[2]刘彦平,谢健.工程测量中的计算机编程新技术[J].中外企业家,2016(21):211,217.
[3]宋方有.工程测量中CASIO fx-5800P编程计算器线路坐标通用程序应用探讨[J].科技创新与应用,2013(34):11-11.
[4]朱卫东,郭立新,张进等.面向就业的工程测量课堂教学举措[J].电脑知识与技术,2014(34):8262-8263.
关键词:C语言 计算机 软件编程 编程方法优化
1、C语言概述
C语言本身具备着较为优越的功能,而其本身拥有的兼具汇编语言和高级语言特点的能力,也是C语言能够在今天的计算机编程中得到广泛应用的原因所在。C语言发展到今天,已成为各种计算机编程语言的基础,而其具备的灵活方便、简洁紧凑、适用于多种操作系统、可自由书写等特点,更为C语言的广泛应用提供了坚实基础。
2、基于C语言的计算机编程技术
2.1 C语言中的函数
在基于C语言的计算机编程技术中,由于具体的编程过程需要分为若干个模块,这就使得其中每一个模块功能的实现,都需要由函数完成。对于基于C语言的计算机编程技术来说,其本身需要应用多种特有的函数,而这类函数的应用过程,相关编程人员需要进行命名、定义参数名以及定义返回值类型等操作,这样才能够顺利完成基于C语言的模块功能设计。当然由于计算机技术的不断发展,编程人员大多数时候都无需手动输入C语言相关的函数,只需要在编程时输入“#include”指令,就可以使用定义好的函数库完成具体的编程操作。
2.2 变量存贮器类型的合理定义
在基于C语言的计算机编程技术中,对变量存贮器类型进行合理定义也是这一技术的重要组成部分。具体来说,基于C语言的计算机编程往往需要应用不同类型的变量存贮器,而不同的变量存贮器对于编译代码的执行效率也不尽相同,为此编程人员可以在子程序模块编程中尽量选择局部变量存贮器,整个程序模块的编程则可以选择全局变量存贮器,这样就能够较好实现基于C语言计算机编程过程中变量存贮器类型的合理定义。
2.3 算法技巧及位操作
对于基于C语言的计算机编程来说,算法称得上是这一编程语言的灵魂所在,这就使得编程人员在应用C语言进行计算机编程时,必须掌握一定算法技巧,对于基于C语言的计算机编程来说,其本身具备着自然语言和流程图两种算法表示方法。值得注意的是,在应用流程图对基于C语言的计算机编程算法表示中,编程人员能够基于这一表示了解流程图符号的含义,这样就能够保证其较好的进行基于C语言的计算机编程算法技巧应用。
2.4 多重\算次序
在基于C语言的计算机编程中,C语言本身对于变量多重运算求值顺序没有形成统一的规定。有过应用C语言编程经验的人就会了解到,不同C语言编译系统存在着细微差别,而很多C语言编译系统在多重运算次序上存在着一定差别。据笔者调查得知,在我国当下基于C语言的计算机编程中,参数求值顺序从右到左最为常见,这就使得基于C语言的计算机编程多重运算次序大多为先运算最后面,依次运算前面,这种基于C语言的计算机编程多重运算次序选择有着较好的可读性和移植性。
2.5 指针用法
对于基于C语言的计算机编程来说,指针用法也是这一编程的重要环节,在论述这一环节前,首先需要了解基于C语言的计算机编程中指针变量。结合相关文献资料笔者发现,定义指针变量时必须对其进行初始化,否则存储空间操作很容易出现严重错误。值得注意的是,编程人员还可以通过加减数值移动指针位置,完成具体的指针计算。此外,应用函数库中的 void 函数,就能够实现指针变量的定义,最终实现将任意数据类型的地址赋给指针变量。
3、基于C语言的编程方法优化
结合上文内容,对基于C语言的计算机编程技术有了较为直观的认识,而为了保证基于C语言的计算机编程技术能够更好发挥自身作用,笔者结合自身多年编程经验与相关文献资料,对基于C语言的计算机编程方法优化进行了详细论述,希望这一论述能够为相关C语言计算机编程从业者带来一定启发。
3.1 优化函数调用
对于基于C语言的计算机编程技术来时,想要实现自身的优化,优化函数调用属于较为有效的方法。具体来说,在基于C语言的计算机编程技术函数调用的优化中,首先需要禁止函数调用传递结构,之所以需要禁止传递结构的函数调用,主要是由于函数调用传递结构会将整个结构复制到堆栈,这就将大量占用堆栈空间,最终加重整个系统的负担,而为了解决不能函数调动传递结构这一影响,可以采用结构指针解决这一问题,这样就顺利实现了基于C语言的计算机编程技术函数调动优化。
对于基于C语言的计算机编程技术来说,其本身具备着多种能够提高自身编程效率的库函数,但这些函数往往具备着代码量大、效率低的缺点,这种缺点之所以出现,主要是由于库函数需要保证自身的广泛适用性,所以编程人员在具体的工作中,就可以结合库函数,自己设计一段函数程序,这样也能够较好实现函数调用的优化。
3.2 指针在数组中使用
对于基于C语言的计算机编程技术来说,想要实现自身技术的优化,就可以将指针在数组中使用,这样就能够大大提高程序的运行效率。具体来说,一般基于C语言的计算机编程需要多次计算数组地址来获得数组中相应的每一个数值,这就大大影响了程序的运行效率,所以笔者建议将指针变量直接指向数组中元素,这样就能够较好实现基于C语言的计算机编程技术优化。
3.3 优化循环语句
为了能够实现基于C语言的计算机编程技术优化,对循环语句进行优化也是优化的较好选择。在基于C语言的计算机编程中,某些重要的循环直接关系着程序运行速度,所以笔者建议将有些在运算时并不需要加入循环变量的任务置于循环外,这样就能够较好实现循环的优化,大大提高程序的运行速度并降低CPU 的负担。
4、结语
在本文就基于C语言的计算机编程技术展开的研究中,笔者详细论述了C语言概述、基于C语言的计算机编程技术以及基于C语言的编程方法优化,希望这一论述内容能够在一定程度上推动我国计算机编程技术的发展,并为于C语言的学习者带来一定帮助。
参考文献:
[1]刘秀明. 基C语言的计算机软件编程实验研究[J].电子技术与软件工程 ,2014(5):263.
【关键词】计算机编程 方式改进 研究
科学技术的发展推动了人类不断进步,计算机信息技术也在全球范围内得到了普及,时至今日,无论是人们从事学习,或者是生活、工作方面,均难以离开计算机,在此背景下,计算机编程技术在很大程度上引导了计算机设备的运行能力,因此,对编程方式进行改进,有利于促进计算机设备高效节能运行,从而让人们在使用时更为便捷。本文基于上述背景,以改进计算机编程方式的意义为出发点,逐步深入的探讨了改进策略,以期能为相关从业人员提供借鉴。
1 计算机编程方式改进的意义
在人们的日常工作生活当中,利用计算机编程,对提高工作效率、丰富个人生活起到了积极作用,随着编程方式的不断改进,其主要方式从手写编程逐步过渡到机器编程,如此以来,在面对高难度、高精度、高要求的任务时,均可有条不紊的进程处理。现代科技的不断发展,让计算机编程方式得到了显著的完善,传统编程已无法满足信息化时代所需,因此,对计算机编程方式进行改进是目前的大势所趋,在社会各个领域、各个阶层均需要有赖于计算机编程,尤其是在计算机朝智能化、效益化、云端发展的背景下,编程的简化工序作用在各个领域中已有目共睹,所带来的经济效益和社会效益十分巨大。
2 计算机编程方式的改进现状
计算机编程所采用的语言以二进制为主,在使用过程中完成了机器语言汇编语言高级语言的演变,随着编程领域的不断深入发展,人们也逐渐意识到机器语言和汇编语言的不足,影响了计算机编程的推广,因此,在编程方式的改进方面,人们不断找寻更加接近人类语言,且具有一定的逻辑规则、明确含义、简单易懂的编程语言。高级语言则是出于这种考虑而演变而来的,在采用这种编程方式时,用户不用考虑计算机类型,只需具备编译和解释程序即可自由编写程序,在使用高级语言的编程过程中,计算机设备不能直接接受和执行命令,均需要进行解释与编译,从通用性和兼容性视角来看,高级语言各个方面均要完胜低级语言(机器语言、汇编语言),高级语言的出现,使编程方式更为简化,提高了编程效率。
3 计算机编程方式的改进策略
数学算法是计算机编程的基础,因此,对计算机编程方式进行优化时可从数学算法入手,编程方式改进优化策略有很多种,数学算法改进是最为有效的途径,利用数学学科中的算法,可对编程问题进行总结划分,从而实现统一计算。以下将以C语言的编程方式改进为例进行说明。
3.1 C语言重复编译改进中
C语言是高级计算机语言中的重要内容,同时也是高级语言中的扩展基础,使用十分广泛。在使用C语言进行程序编写时,存在一个相当普遍的现象,即重复编译,由于C语言属于面向过程的语言,因此在编程过程中非常看重代码的逻辑性,例如一个叫head.h的头文件,被工程中两个源文件同时包含如:A.cpp和B.cpp。此时不用这个条件编译,编译时会将head.h编译两次,导致编译效率低下。
但在使用#ifndef进行编译时即可避免重复编译的问题,如:
编译A.cpp的时候,编译器在预处理时知道了有HEADER_H宏,那么在编译b.cpp的时候,预处理#ifndef HEADER_H时发现条件为假,自然不去编译它了,节约了编程的时间。
3.2 数学算法对高级语言的改进
(1)面向对象程序的设计语言,即C++语言,这是属于C语言的编程语言,在面向对象程序的编程语言需以对象封装的形式进行,因此可避免C语言的编程缺陷,保证编程高校和稳定;
(2)若编程规模庞大,则所需的编写代码任务量非常巨大,可采用数学算法对编程方式进行优化,数学建模是一种有效形式,利用数学建模进行统一运算,可更加高效的解决问题,数学算法是目前编程工作人员公认的适宜改进计算机编程方式的方法,可有效减少工作量,并快速准确的达到程序效果。例如常用的辗转相除法、卡马克快速平方根、以及牛顿迭代算法等,均可建立数据模型,以坐标系、向量表等形式对程序进行直观表达,从而让编程方式更加便捷。
4 结束语
计算机技术的广泛应用,不仅有效提高了人们工作和生活方式,且编程设计可进一步提高工作效率,因此,采取有效方式对编程进行改进意义重大,在科技发展的背景下,传统手工编程已逐渐被行业淘汰,在现代企业中,更多的是要求使用机器编程,这就要求对编程方式进行改进,提高编程效率。数学算法作为有效的优化形式,可对程序逻辑分析进行设计,在编程方式改进过程中起到的作用非常明显,因此,相关工作人员需熟练掌握这种改进方法,对重复变异现象做出改进,从而提高编程效率。
参考文献
[1]牟昊天.计算机编程方式改进的必要性及优化策略[J].通讯世界,2015(16):199-199.
[2]贺蕴彬.关于计算机编程方式改进的分析[J].中国电子商务,2013(15):41.
【关键词】C语言 计算机 软件编程
C语言应用建立在简单编程语言的基础上,是一项新型的编程语言确保了编程任务的顺利完成。使用者在实际的应用过程中,不受各项限制条件影响,可以结合自身的实际使用需求,严格按照C语言的编程要求进行编程。通过编程运行应用软件的实施结果上可以看出,C语言是计算机中的高级编程Z言,对提升计算机技术应用效果具有重要作用。
1 C语言下的计算机软件编程实验技巧
1.1 熟练掌握指针运用方法
指针是C语言编程中一种特殊的类型变量,能够快速处理编程设计过程中存在的复杂问题。指针的三要素主要包括指针名、值和类型。在对指针编程过程中,主要确保一般变量和指针的相同性。将指针应用于数组表示和函数的参数返回值中。
1.2 明确C语言特有函数功能
特有函数在C语言编程中被广泛应用,需要充分展现出函数的功能,编程设计人员需要将返回值、函数名字和参数名等项目进行定义。编程库中的函数主要是由C编译系统提供,需要确保函数系统的合理定义,确保程序调用的合理性,将“#include指令”包含到所用文件中。例如,在程序运行过程中,通常会运用sqrt函数,为了确保程序的合理运行,需要将#include“string.h”应用到头文件中。
1.3 掌握算法程序设计技巧
算法是程序设计的灵魂,需要明确算法技巧的应用方法,运用自然语言和流程图合理表达算法。要求程序设计员需要熟练掌握流程图符号,将其作为计算机之母,通过对数学知识的牢固应用,有助于提升计算机编程效率。
1.4 掌握位运算及文件知识
位运算是C语言之间的重要特色,也是计算机中的高级语言运算方法,自身具有唯一性和独特性特点。需要将位运算作为二进制位对象,严格按照程序要求进行运算。程序设计员在编程时,需要将所写的程序存储到文件中,提升数据查找效率。
2 计算机软件C语言编程案例
2.1 混合软件编程方法
随着科学技术的快速发展,需要加大对语言混合编程技巧的应用,对提升系统编程开发效率具有重要作用。在对混合软件编程方法进行研究时,主要包括以下两方面研究内容:
(1)需要将汇编语句嵌入到C语言源程序中,例如,在将asm汇编语句嵌入到C语言源程序中,需要将asm mov as,5/*将5发送到ax寄存器*/,将汇编语句嵌入到C语言源程序中时,需要利用大括号将嵌入程序括起来,例如:
Main( )
{asm{
mov ah,2
mov bh,5
int 10h
}
}
本次实验在实施过程中,在对程序进行嵌入式设计时,需要严格按照固定的格式进行嵌入式输入,并且需要在嵌入的各行代码前加“asm”。程序设计人员在进行嵌入式程序设计时,需要满足以下条件要求:“asm”关键字不可少,并且需要将其放置在指令代码前,需要确保嵌入汇编语言指令代码能够与正常的C语言程序混合使用,用“;”作为C语言的分隔符;将“/%”和“*/”作为C语言的注释分界符。
(2)做好C语言程序和汇编程序的编写工作,确保编译目标代码模块的独立性,确保链接的合理性。首先,明确C语言程序汇编语言中各种子程序和定义变量的合理性,确保汇编语言的合理调用。由于混合编程语言由若干个功能模块共同组成,各功能模块语言能够独立完成编程工作,并且通常会以函数的形式展现出来。设计人员需要结合每一模块的特点,来合理选择独立的语言编程系统,并形成目标性的文件,确保能够形成可视性的文件。其次,需要加大对参数传递问题的合理解决,从参数传递原则方面对C语言的程序调用汇编程序进行分析,运用推栈将参数传递给汇编程序。例如,在对voidaa(char*p,inti)函数进行编写时,主要是利用汇编语言进行编写,确保编译工作能够在小内存模式下开始,系统在调用时,将其编写成aa(&q,n)。
2.2 混合软件编程实例分析
在开展混合软件编程工作时,需要纯5个数中寻找最小值,将主程序设为“min.c”,汇编子程序设为“qiumin.asm”。主程序的编写形式主要是利用C语言进行编写,汇编子程序的编写形式主要是利用汇编语言编写,在实际的应用过程中,通常会被主程序所调用,以便完善对最小数的寻找,程序代码如下所示:
/*文件名为:min.c*/
#include
Int extern qiumin(int count,int vl,int v2,int v3,int v4,int v5);/*声明qiumin为外部函数*/
Main()
{
int min;
Min=qiumuin(12 ,54,8,4,23,9);
Printf(“The min is%d\n”,min);
}
主要是利用C语言和汇编语言混合的编程反复发,确保应用程序能够满足运行速度的要求,编程人员需要做好寄存器的合理分配,明确影响程序的因素。为了确保程序的合理运用,需要确保程序预报语言设计之间外部接口的相互协调性,提升外部调用效果。
3 结论
近年来,信息技术发展迅速,计算机软件是信息化社会的必需品,需要加大对C语言的应用力度,将其应用到各个领域中,确保行业的高效运营,为计算机软件的发展奠定良好的基础。同时,确保C语言软件能够广泛的应用到计算机编程实验中,强化C语言的实践效果,利用简单的C语言编程,提高软件的功能性,拓宽计算机软件的应用领域,确保计算机软件的多样化发展,向网络化和信息化方向不断迈进。
参考文献
[1]龚晨.基于C语言的计算机软件编程实验研究[J].电脑编程技巧与维护,2016(02):36-37.
[2]芮素文.基于C语言的计算机软件编程分析[J].信息系统工程,2015(01):40.
[3]王志超,赵越.基于C语言的计算机软件编程实验研究[J].科技创新导报,2015(11):45.
关键词:计算机编程思想;面向过程;面向对象;面向方面
中图分类号:TP3-0 文献标识码:A 文章编号:16727800(2012)011000502
作者简介:高云(1970-),女,硕士,南京信息职业技术学院副教授、高级工程师,研究方向为高职教育、软件技术。
0 引言
计算机技术产生于20世纪40年代,随着软硬件水平的飞速发展和应用范围的扩大,计算机编程思想也历经变化,先后出现了面向过程编程、面向对象编程和面向方面编程这几种编程思想,它们的产生对软件技术的发展起到了深远的影响。
1 面向过程编程
面向过程编程,又称为结构化编程。C、Pascal和Fortran语言均采用面向过程编程思想。
面向过程编程关注的是解决问题的步骤,先把软件系统分解成多个模块,然后逐步细化,完成整个软件系统。各模块之间存在相互调用和信息传递。
面向过程编程的思维方式易于理解、条理清晰,曾被广泛应用,但随着软件系统规模的扩大和性能要求的提高,面向过程编程的缺陷日益明显。软件系统规模的扩大,使得模块的分解难度加大,模块之间的联系也更加复杂,软件的可靠性难以提高,可维护性差。
2 面向对象编程
在 20 世纪 90 年代,面向对象编程(OOP)逐步代替了面向过程编程。迄今为止,面向对象成为了主流的编程思想,已经发展到相当成熟的阶段。典型的采用面向对象编程思想的开发语言有 C++、Pascal 等。
所谓面向对象就是在处理问题时,从该问题所存在的事物本身出发,以类及对象作为基本构造单元,逐步认识事物的属性和行为特征。面向对象的分析过程是人类认识客观世界的过程,更接近于人类思维的方式。
面向对象编程的主要概念如下:
(1)对象(Object):对象是对客观事物的一个实体的描述,是构成系统的一个基本单位,是分析问题的基准。
(2)类(Class):类是具有相同属性和服务的一组对象的集合,对属于该类的对象集合提供了统一的抽象描述,内部包括属性和行为两个主要部分。简言之,类是对对象的抽象,而对象是类的实例化。
(3)抽象(Abstract):抽象是面向对象编程思想的基本的原则之一, 是对一类对象中所共有的属性和行为特征的提取。抽象包括数据抽象和行为抽象,数据抽象是指对该类对象的公共属性的抽象, 行为抽象是指对该类对象可进行的公共操作的抽象。
(4)封装(Encapsulation):封装是采用类机制将类的属性和行为进行捆绑,成为一个整体,使得类的内涵丰富而便于使用。
(5)继承(Inheritance):继承是指子类不但具备父类的属性和行为, 还可以具备自身独有的属性和行为,子类的所有属性和行为还可以被它自身的子类继承下去,子类与父类间的继承关系呈现出的层次结构体现出现实世界中不同类型对象之间的共性和个性关系,因此继承可以解决软件的可重用性问题,简化了程序设计。
(6)多态(Polymorphism):多态是指具有继承关系的类可以使用同名行为,但行为内涵可以具有不同的定义,不同的对象将会根据自己所属的类来选择在实际运行中所使用的具体行为。多态性机制增加了面向对象软件系统的灵活性,提高了软件的可重用性和可扩充性。
面向过程与面向对象的编程思想最根本的区别在于:前者从操作步骤出发,着重于对操作步骤的分解,将各个操作整合为模块,从而组成整个系统;而后者编程角度从对所处理的事物出发,着重于对事物的属性和行为的抽象,以及不同类型事物之间的共性和个性。
较面向过程编程相比,面向对象编程可以描述更复杂、更接近现实的系统,描述方法灵活,具备良好的可重用性和可扩展性,提高了软件系统的质量和开发效率,保证了对系统项目的有效管理。
但在实际过程中,面向对象编程的缺陷也不容忽视,主要表现为代码散乱和代码纠缠。面向对象的首要工作是对所关注对象的界定,也就是类的设计,要给出类的属性和行为。但在现实过程中,常常会遇到横跨多个不相关模块的公共行为,如记录日志、异常处理、安全控制等等,即横切关注点。系统中频繁出现的横切关注点致使代码散乱,而横切关注点之间的关联又致使代码纠缠。代码散乱和代码纠缠使得面向对象编程的系统结构混乱,难以维护和扩展,降低了软件系统的质量。
3 面向方面编程
面向方面编程(AOP)的概念是 Gregor Kiczales 在 Xerox Parc 团队于 20 世纪 90 年代后期提出的,Filman与Friedman 2000年在OOPSLA关于分离关注点的讨论会上给出了得到公认的面向方面的定义。虽然面向方面编程还处于不完善的阶段,但它已经受到了广泛的关注。目前,采用面向方面编程思想的语言有许多种,如 Aspect C++、Aspect J等等。
面向方面编程将软件系统中的所有业务逻辑分为核心关注点(Code Concerns)和横切关注点(Crosscutting Concerns),核心关注点处理系统中的独立的核心业务,横切关注点处理系统中的相对独立的非核心业务,横切关注点所涉及的业务功能在系统不同位置被多次使用。面向方面编程认为不需要在代码中显式调用横切关注点,而只要指定加入横切关注点的位置,那么系统在运行时自动执行横切关注点的业务功能。
面向方面编程的主要概念如下:
(1)关注点(Concern):关注点是指对特定业务的处理。软件系统是所有核心关注点和横切关注点的组合,在编码时分别实现,在运行时重新组合起来。软件系统中的关注点分为核心关注点和横切关注点。
(2)方面(Aspect):方面类似于面向对象编程中的类,但内涵更丰富。它将切入点和通知结合在一起,用于描述横切关注点。
(3)通知(Advice):通知是位于方面中修改行为或属性的代码。方面可以在特定条件下将通知嵌入特定位置,从而达到横切的目的。通知分为3种,Before通知、After通知和Around通知,分别表示操作是在连接点之前、之后或代替连接点。
(4)切入点(Pointcut):切入点通过定义切入点表达式来过滤出感兴趣的连接点,是方面的作用点。
(5)连接点(Joinpoint):连接点是主程序和方面的连接处,指明了织入横切代码的位置。
(6)织入(Weaving):织入是指将通知的代码插入通知所对应的连接点的代码中,得到一个完整的软件系统。
面向方面编程的开发步骤包括方面分解、关注点实现和织入。方面分解是指将软件系统分解为核心关注点和横切关注点。关注点实现是指对所分解的关注点的实现,核心关注点可以采用面向对象编程技术,横切关注点可以采用面向方面编程技术。织入是指通过创建方面来制定制定关注点之间的实施规则,从而得到最终的系统。
面向方面编程采用了横切关注点模块化来完成系统中业务逻辑的划分,实现了关注点的分离,较面向对象编程相比降低了系统实施的难度,解决了代码散乱和代码纠缠的问题。方面的设计使得系统的松散耦合性更强,代码冗余小,系统易维护、易扩充。
虽然面向方面编程已受到广泛的关注和应用,但其本身存在的问题也给使用带来了一定的困难。例如,切入点与基础程序的耦合性较强,基础程序结构的变化就可能导致意外的连接点丢失。因此,目前在开发过程中,面向方面编程技术只作为面向对象编程技术的补充加以运用。
4 结语
面向过程、面向对象和面向方面这3种编程思想是随着计算机软件规模的扩大和架构的复杂而依次出现的,各有其利弊,均得到应用。现在软件系统开发普遍采用的是面向对象编程;面向过程编程适用于功能简单而且可以用流程来表示的软件系统;面向方面编程目前只在软件系统的局部使用,作为对面向对象编程的补充。
参考文献:
[1]史永哲.计算机编程思想分析[J].陕西师范大学学报:自然科学版,2008(6).
[2]刘晓峥.浅析面向过程与面向对象编程思想之异同[J].科技信息,2011(3).
[3]古思山,蔡树彬,李师贤.从面向方面程序设计的定义到面向方面程序设计语言[J].计算机科学,2011(10).