快捷搜索:

程序设计方法的演化及极限:面向对象程序设计

3.面向工具法度榜样设计

20世纪90年代,因为谋略机硬件的飞速成长,对软件系统在规模和机能方面的要求也在赓续的前进。是以,传统的法度榜样设计措施使得软件和硬件能力的差距迅速扩大年夜。传统的软件对象、软件技巧和抽象层次越来越难以适应大年夜规模繁杂软件系统的开拓特征。是以,软件能力已成为制约软件成长的主要身分。

OOP措施源于20世纪70年代中后期,在20世纪80年代慢慢代替了传统的SP措施,成为最紧张的措施之一,至今OOP措施被广泛利用于各个领域。面向工具的基础思惟与布局化设计思惟完全不合,面向工具的措施学觉得天下由各类工具组成,任何事物都是工具,是某个工具类的实例,繁杂的工具可由较简单的工具的某种要领组成。OOP的基石是工具和类。工具是数据及对这些数据施加的操作结合在一路所构成的自力实体的总称;类是一组具有相同数据布局和相同操作的工具的描述。面向工具的基础机制是措施和消息,消息是要求某个工具履行类中某个操作的规格阐明;措施是工具所能履行的操作,它是类中所定义的函数,描述工具履行某个操作的算法,每一个工具类都定义了一组措施。

OOP有3个紧张特点:封装性、承袭性和多态性。封装性是指工具是数据和处置惩罚该数据的措施所构成的整体,外界只能看到其外部特点(消息模式、处置惩罚能力等),其内特点(私稀有据、处置惩罚措施等)对外弗成见。工具的封装性使得信息具有隐蔽性,它削减了法度榜样因素间的互相依附,低落法度榜样的繁杂性,前进法度榜样的靠得住性和数据的安然性。 承袭性(Inheritance)反应的是类与类之间的不合抽象级别,根据承袭与被承袭的关系,可分为基类和衍生类,基类也称为父类,衍生类也称为子类,正如“承袭”这个词给我们的字面提示一样,子类从父类那里得到所有的属性和措施,并且可以对这些得到的属性和措施加以改造,使之具有自己的特征。承袭性使得相似的工具可以共享法度榜样代码和数据,承袭性是法度榜样可重用性的关键。多态性是指在形式上体现为一个措施根据通报给它的参数的不合,可以调用不合的措施体,实现不合的操作。将多态性映射到现实天下中,则体现为同一个事物跟着情况的不合,可以有不合的体现形态及不合的和其他事物通信的要领。多态性使法度榜样员能在一个类等级中应用相同函数的多个版本,法度榜样员可以集中精力开拓可重用的类和偏向而不必过分担心名字的冲突问题。

OOP措施因此“工具”为中间进行阐发和设计,紧抓“模型化天下”的工具,使这些工具形成了办理目标问题的基础构件,即办理从“用什么做”到“要做什么”。其办理历程从总体上说是采纳自底向上措施,先将问题空间划分为一系列工具的聚拢,再将工具聚拢进行分类抽象,一些具有相同属性行径的工具被抽象为一个类,类还可抽象分为子类、超类(超类是子类的抽象)。其间采纳承袭来建立这些类之间的联系,形成布局层次。同时对付每个详细类的内部布局,又可采纳自顶向下慢慢细化的措施由粗到细精化之。调试运行时经由过程向类工具发消息来完成,工具履行响应操作并返回结果,使工具集的初始状态变成了终态。故OOP总体来说主如果赓续设计新的类和创建工具的历程。

与传统的SP比拟,OOP措施具有许多优点,如采纳“工具”为中间的设计要领,再现了人类熟识事物的思维要领和办理问题的事情要领;OOP措施以工具为独一的语义模型,全部软件义务是经由过程各工具(类)之间互相通报消息的手段协同完成。是以,能只管即便逼真地模拟客不雅天下及其事物;由工具和类实现了模块化,类承袭实现了抽象工具,以及任一工具的内部状态和功能的实现的细节对外都是弗成见的,是以很好地实现信息暗藏。由此建立在类及其承袭性根基上的重用能力可敷衍繁杂的大年夜型的软件开拓。面向工具措施使得软件具有优越的体系布局、便于软件构件化、软件复用和优越的扩展性和掩护性,抽象程度高,因而具有较高的临盆效率。今朝,面向工具法度榜样设计说话以Java、C++ 为代表。

您可能还会对下面的文章感兴趣: