相对于结构化开发方法,面向对象是一种更优秀的程序设计方法,基本思想是使用类、对象、继承、封装、消息等基本概念进行程序设计。采用面向对象方式开发软件系统需要经过面向对象程序设计,然后才能正式进行程序的开发。下面我们一起来探究面向对象程序设计的具体步骤。
一、基本思想
面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙一个事物在整个解决问题的步骤中的行为。面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。通过这些概念面向对象的思想得到了具体的体现。
传统的结构化设计方法的基本点是面向过程,系统被分解成若干个过程。而面向对象的方法是采用构造模型的观点,在系统的开发过程中,各个步骤的共同的目标是建造一个问题域的模型。在面向对象的设计中,初始元素是对象,然后将具有共同特征的对象归纳成类,组织类之间的等级关系,构造类库。在应用时,在类库中选择相应的类。
面对对象程序设计是尽可能地在模拟人类的思维。通过这样的方式能够让开发的软件更加符合人类的认知,人们使用起来也能够更加顺手。并且通过应用软件能够切实地解决现实生活中的问题。面向对象程序设计使得描述问题的问题空间和问题的解决方法空间组合在一起,并且尽可能地保持一致。能够将客观世界中的抽象问题转化为具体的问题对象。
面向对象的思维更符合人认识和思考问题的方式,面向对象的概念和应用已经超越了软件开发和程序设计,扩展到多个的领域,其中一个应用的分支就是面向对象的知识表示法。这种表示法把组成客观世界的实体抽象为数据和对数据的操作,并使用类把数据和对数据的操作封装成为一个不可分割、互相依存的整体。面向对象表示的知识更接近客观世界,表示方案更加自然,易于理解。面向对象技术良好的模块性,面向对象的系统良好的可维护性、可扩充性和可重用性等特点,正符合人们组织和管理知识库的需求。
二、程序实现
(一)程序设计语言
⒈选择面向对象语言
采用面向对象方法开发软件的基本目的和主要优点是通过重用提高软件的生产率。因此,应该优先选用能够最完善、最准确地表达问题域语义的面向对象语言。
在选择编程语言时,应该考虑的其他因素还有:对用户学习面向对象分析、设计和编码技术所能提供的培训操作;在使用这个面向对象语言期间能提供的技术支持;能提供给开发人员使用的开发工具、开发平台,对机器性能和内存的需求,集成已有软件的容易程度。
⒉程序设计风格
⑴提高重用性。
⑵提高可扩充性。
⑶提高健壮性。
(二)类的实现
在开发过程中,类的实现是核心问题。在用面向对象风格所写的系统中,所有的数据都被封装在类的实例中。而整个程序则被封装在一个更高级的类中。在使用既存部件的面向对象系统中,可以只花费少量时间和工作量来实现软件。只要增加类的实例,开发少量的新类和实现各个对象之间互相通信的操作,就能建立需要的软件。
一种方案是先开发一个比较小、比较简单的来,作为开发比较大、比较复杂的类的基础。
⑴“原封不动”重用。
⑵进化性重用。
一个能够完全符合要求特性的类可能并不存在。
⑶“废弃性”开发。
不用任何重用来开发一个新类。
⑷错误处理。
一个类应是自主的,有责任定位和报告错误。
(三)应用系统的实现
应用系统的实现是在所有的类都被实现之后的事。实现一个系统是一个比用过程性方法更简单、更简短的过程。有些实例将在其他类的初始化过程中使用。而其余的则必须用某种主过程显式地加以说明,或者当作系统最高层的类的表示的一部分。
在C++和C中有一个main()函数,可以使用这个过程来说明构成系统主要对象的那些类的实例。
(四)面向对象测试
⑴算法层。
⑵类层。
测试封装在同一个类中的所有方法和属性之间的相互作用。
⑶模板层。
测试一组协同工作的类之间的相互作用。
⑷系统层。
把各个子系统组装成完整的面向对象软件系统,在组装过程中同时进行测试。
事实上,当前市场上的面向对象应用程序大多数都是遵循着上述的面向对象程序设计的规范来进行设计开发的,之所以面向对象程序设计如此受重视,除了对程序代码的良好规范能够为用户带来更好的交互体验之外,更多的是大大增加了程序的使用寿命,降低了程序的维护成本。