面向对象设计及实现
面向对象的数据库设计与实现

面向对象的数据库设计与实现一、概述面向对象的数据库设计与实现是一种基于面向对象的编程思想建立的数据库,与传统的关系型数据库有所不同。
其采用对象的概念来描述数据,使得数据更加直观、容易管理,也更符合现代软件的需求。
二、对象概念在面向对象的数据库设计中,数据被组织成对象的集合。
对象是一个抽象的概念,通常包含多个属性和方法。
属性是对象的数据成员,用于存储对象的状态信息;方法是对象的操作成员,用于对对象进行操作。
对象还可以包含其他对象,从而形成复杂的关联关系。
三、关系映射在面向对象的数据库设计中,需要将对象映射到关系型数据库中进行存储。
为了实现这个映射过程,需要定义一个映射规则,将对象的属性映射到表的列,将对象的方法映射到表的操作。
通常采用ORM(Object-Relational Mapping)技术实现对象与关系之间的映射,如Hibernate和MyBatis等。
四、关键技术1.继承在面向对象的数据库设计中,继承是一个非常重要的特性。
继承可以让类之间建立关联关系,从而实现数据的复用。
在关系型数据库中,继承通常通过表的关联实现。
子类表通过一个外键与父类表进行关联,从而实现子类与父类的继承关系。
2.封装封装是面向对象设计的基本原则之一,在数据库设计中也同样适用。
封装可以将数据和方法隐藏起来,只对外提供接口,从而提高代码的可维护性和安全性。
在数据库设计中,可以使用视图(View)和存储过程(Stored Procedure)等技术来实现数据的封装。
3.多态多态是面向对象设计的重要特性之一,可以让同一操作作用于不同的对象产生不同的结果。
在数据库设计中,可以通过触发器(Trigger)和函数(Function)等技术实现多态。
触发器可以根据不同的条件进行不同的操作,函数可以根据不同的参数返回不同的结果。
五、案例分析以一个简单的学生和教师管理系统为例,说明面向对象的数据库设计和实现过程。
1.需求分析该系统需要实现学生和教师的管理功能,包括学生和教师的基本信息管理、课程安排和考试成绩管理等。
面向对象编程实验报告

面向对象编程实验报告一、实验目的本次实验旨在通过面向对象编程的方式,设计并实现一个简单的学生信息管理系统,加深对面向对象编程原理和概念的理解,并掌握面向对象编程的应用技巧。
二、实验内容1. 设计学生类(Student):包括学生的基本信息(学号、姓名、性别、年龄等)以及相关操作(添加信息、修改信息、删除信息等)。
2. 设计班级类(Class):包括班级的基本信息(班级编号、班级名称等)以及与学生类的关联关系(一个班级包含多个学生)。
3. 设计主程序类(Main):用于对学生信息进行管理和操作,包括添加学生、删除学生、修改学生信息、查询学生信息等功能。
4. 编写测试用例:对设计的学生信息管理系统进行测试,保证系统能够正常运行并实现预期功能。
三、实验步骤1. 设计学生类(Student):首先确定学生类的属性和方法,定义学生类的成员变量(学号、姓名、性别、年龄)以及成员方法(添加学生信息、修改学生信息、查询学生信息等)。
2. 设计班级类(Class):确定班级类的属性和方法,包括班级编号、班级名称以及一个包含学生信息的集合,设计班级类与学生类的关联关系。
3. 编写主程序类(Main):在主程序类中实现学生信息的管理功能,通过用户输入选择对学生信息的操作,调用学生类和班级类中的方法实现相应功能。
4. 编写测试用例:设计多个测试用例,分别测试添加学生、删除学生、修改学生信息等功能,确保系统能够正确运行并实现预期功能。
四、实验结果分析经过测试,学生信息管理系统能够正常运行并实现预期功能。
用户可以通过主程序类对学生信息进行添加、删除、修改和查询操作,操作界面友好,操作流程清晰,便于用户操作和管理学生信息。
五、实验总结通过本次实验,我深入理解了面向对象编程的原理和概念,掌握了面向对象编程的应用技巧,提升了对Java编程语言的熟练程度。
面向对象编程具有代码复用、维护方便和高扩展性等优点,是一种高效的编程思想。
在今后的学习和工作中,我将继续深入研究面向对象编程,不断提升自己的编程能力。
面向对象数据库的设计与实现方法

面向对象数据库的设计与实现方法面向对象数据库(Object-Oriented Database,简称OODB)是一种用于存储、管理和操作面向对象数据的数据库系统。
与传统的关系数据库不同,面向对象数据库以对象为中心,将数据和操作进行封装,并支持面向对象的继承、多态等特性。
在本文中,我将介绍面向对象数据库的设计和实现方法。
一、面向对象数据库的设计方法1. 对象模型设计:在设计面向对象数据库时,首先需要进行对象模型设计。
对象模型是对现实世界中的实体进行抽象和建模的过程。
设计者可以使用UML(统一建模语言)或其他建模工具来表示对象之间的关系,包括继承、关联和聚合等。
2. 类定义:在面向对象数据库中,数据存储在对象中,而对象定义了用于访问和操作数据的方法。
因此,设计者需要定义和声明对象的类。
类定义包括属性(数据成员)和方法(行为)。
3. 对象标识和唯一标识符:为了可以唯一地标识一个对象,需要为每个对象定义一个唯一标识符(Object ID)。
对象标识符可以是数字、字符串或其他形式的数据。
在数据库的设计中,需要确保每个对象都有唯一的标识符。
4. 继承与多态:面向对象数据库支持继承和多态的特性。
继承是指一个类从另一个类派生而来并继承其属性和方法。
多态是指同一操作用于不同对象时能产生不同的行为。
设计者需要考虑如何在面向对象数据库中实现继承和多态的功能。
5. 数据一致性:面向对象数据库包含了多个对象,对象之间可能存在关联和约束。
为了保持数据的一致性,设计者需要定义适当的关联和约束条件,并确保这些条件得到满足。
二、面向对象数据库的实现方法1. 数据存储:在面向对象数据库中,数据存储在对象中。
设计者需要选择合适的数据存储和索引结构来支持对象的快速存取。
常见的数据存储结构包括堆、哈希和B树等。
2. 数据查询和操作:面向对象数据库支持丰富的查询和操作语言。
设计者需要为数据库选择合适的查询语言和操作接口。
常见的查询语言包括面向对象的查询语言(如OQL)和结构化查询语言(SQL)。
C语言实现面向对象设计

C语言实现面向对象设计C语言是一种过程式编程语言,它并不直接支持面向对象的设计。
但是,通过一些技巧和约定可以在C语言中实现面向对象的编程模式。
面向对象的设计主要包含了封装、继承和多态三个概念,下面我们将分别介绍如何在C语言中实现这三个概念。
1.封装:封装是面向对象设计的一个重要概念,它将数据与操作数据的函数组合在一起,形成一个独立的单元即对象。
在C语言中,我们可以使用结构体来实现封装的效果。
结构体可以将不同类型的数据组合在一起,并通过函数来操作这些数据,模拟对象的概念。
```c//定义一个结构体来表示一个人的信息typedef structchar name[20];int age;} Person;//定义一个函数来创建一个人的实例Person* createPerson(char* name, int age)Person* person = (Person*)malloc(sizeof(Person));strcpy(person->name, name);person->age = age;return person;//定义一个函数来输出一个人的信息void printPerson(Person* person)printf("Name: %s, Age: %d\n", person->name, person->age);int maiPerson* person = createPerson("Alice", 25);printPerson(person);free(person);return 0;```在上面的代码中,我们通过创建一个结构体`Person`来封装一个人的信息,然后使用`createPerson`函数来创建一个`Person`对象,并使用`printPerson`函数来输出对象的信息。
2.继承:继承是面向对象设计中一个很有用的特性,它允许一个对象继承另一个对象的属性和方法。
面向对象的程序设计语言的发展与实现

面向对象的程序设计语言的发展与实现随着计算机技术的不断发展,编程语言也在不断地改进和发展。
面向对象的程序设计语言就是其中之一。
在本文中,我们将探讨面向对象的程序设计语言的发展历程以及实现方式。
一、面向对象的程序设计语言的发展历程1. 早期的面向对象编程早期的面向对象编程语言是模拟面向对象编程的语言,例如Simula和Smalltalk。
Simula是第一个支持类和子类概念的语言,它被开发出来的主要目的是用于在模拟船只运行和停靠方面进行研究。
Smalltalk是第一个完全面向对象的编程语言,它被设计为支持图形用户界面。
2. C++语言C++是一种跨平台的编程语言,它继承了C语言的基本语法,并引入了类、封装、继承和多态等面向对象编程的特性。
C++是一种比较流行的面向对象编程语言,在游戏制作、桌面软件和嵌入式系统等方面都有广泛的应用。
3. Java语言Java是由Sun公司开发的一种高级编程语言,它基于C++语言,并且支持面向对象的编程。
Java在很多方面都比C++更好用,例如它支持垃圾回收、自动内存管理、跨平台等特性。
Java很流行,很多大型企业都使用它来开发软件。
4. Python语言Python是一种高级编程语言,它容易学习,语法简单,支持面向对象编程。
Python在数据科学、人工智能、机器学习等方面都非常流行。
Python的成功得益于其简洁、可读性和可维护性,同时也支持很多第三方库和框架。
二、面向对象编程的实现方式1. 类和对象类是面向对象编程语言中的基本概念,它是一种自定义数据类型。
程序员可以在类中定义属性和方法,从而实现数据的封装和功能的实现。
对象是类的实例,它包含了类中所有的属性和方法。
对象可以被创建和实例化,从而实现对类的使用。
2. 继承继承是一种面向对象编程的重要特性。
它允许程序员创建一个新类,该类从已经存在的类中继承了属性和方法。
在继承过程中,程序员可以重写已经存在的方法,或者定义新的属性和方法。
面向对象数据库的设计和实现

面向对象数据库的设计和实现在计算机科学领域中,数据库管理系统(DBMS)是必不可少的技术。
其中一个主要的数据库类型是关系型数据库,这种数据库使用表来存储数据。
然而,随着互联网技术的发展,越来越多的数据需要以更灵活和更高效的方式储存和处理。
面向对象数据库(OODB)因此应运而生,它使用面向对象的方式来存储数据。
本文将介绍面向对象数据库的设计和实现。
1. 概述相比于关系型数据库,面向对象数据库有许多优点。
首先,它们可以更好地支持面向对象的编程语言,比如Java,Python和C++等。
其次,它们可以在对象之间建立更自然的关系,这样就可以更简单地管理和操作数据。
另外,由于对于每个特定类型的对象都有一个特定的类来定义,所以数据的类型可以更具体和精准。
1.1 面向对象数据库的实例面向对象数据库的一个实例是Zope Object Database (ZODB),它是用于Python 语言的对象数据库。
它允许用户将Python对象直接存储到数据库中,这意味着可以完全避免转换为表的过程。
另一个例子是Versant Object Database,这是一个可用于C++和Java语言的对象数据库。
2. 面向对象数据库的设计设计面向对象数据库可以是一个比较复杂和困难的过程,因为它涉及到如何将对象转化为数据模型的问题。
不过,使用现代的工具和技术可以帮助我们简化这个过程。
以下步骤可以帮助我们设计面向对象数据库:2.1 确定对象首先,我们需要确定将在数据库中存储哪些对象。
这通常需要一些领域知识和分析,因为我们需要知道在该领域中哪些对象是重要的并需要存储到数据库中。
2.2 创建类和属性然后,我们需要为每个重要的对象创建一个类,并为该对象定义相关的属性。
这些类和属性通常需要编写程序语言,并将其映射到数据库中的表。
2.3 建立对象之间的关系接下来,我们需要建立对象之间的关系。
例如,我们可能需要为某些对象的关联属性添加关联关系。
这些关联关系需要在数据库的表中建立外键。
面向对象程序设计范式接口设计与实现

面向对象程序设计范式接口设计与实现第一章概述面向对象程序设计(Object-oriented programming, OOP)是一种软件开发方法,其中的重点是使用类和对象来组织和管理数据和功能。
接口设计是OOP中极为重要的一个方面,它定义了一个类可以向外部提供的方法和数据。
在本文中,我们将探讨接口设计的原则、标准以及如何实现它们。
第二章接口设计原则2.1 单一职责原则(Single Responsibility Principle)类应该遵循单一职责原则,意味着一个类只应该有一个负责区分其他类的职责。
接口设计中,单一职责原则可以使接口的用途更加清晰,减少了接口的多余功能。
2.2 开闭原则(Open-Closed Principle)开闭原则意味着软件应该对扩展开放,但对修改关闭。
在接口设计中的应用为,当需要新增功能时,应该考虑添加新接口来扩展而非修改已有接口。
2.3 里氏替换原则(Liskov Substitution Principle)里氏替换原则指出,任何子类型都应该能替代其超类。
这个原则也适用于接口设计中,即实现了某个接口的类应该能够完全替代该接口的引用方法。
2.4 接口隔离原则(Interface Segregation Principle)接口隔离原则认为,一个类应该只依赖于它需要的方法,而非依赖于整个接口。
在接口设计中,应该尽量拆分出不同的接口,以便于强制只依赖必要方法的类使用。
2.5 依赖倒置原则(Dependency Inversion Principle)依赖倒置原则表明,高层模块不应该依赖于低层模块,它们应该共同依赖于抽象。
在接口设计中,这意味着写出接口以及其他较高层次的代码应该基于抽象、定制化的低层次代码。
第三章接口设计标准除了设计原则以外,接口设计也需要一些需要考虑的标准。
接口设计的标准旨在保证接口易于使用、可读性高、提供良好的错误处理和避免常见的漏洞。
3.1 命名规范命名规范是为了使接口易于理解和方便使用。
面向对象的数据库设计与实现

面向对象的数据库设计与实现随着信息时代的到来,各种数据库系统的应用如雨后春笋般涌现出来。
面向对象的数据库是一种新型的数据库,它具备了面向对象编程语言的特点,并将面向对象的技术应用在数据库设计中,为开发人员带来了更加方便、简洁、高效的编程方式。
本文将介绍面向对象的数据库设计与实现。
一、面向对象的数据库设计面向对象的数据库设计是一种以对象为中心的数据模型,它将数据存储在一个对象库中。
与传统的关系型数据库相比,面向对象的数据库设计更能够反映出现实中的复杂对象关系。
在面向对象的数据库设计中,需要对对象进行良好的分类,找出其中的关系,并建立对象之间的联系。
因此,正确地分类和建立对象的联系是面向对象数据库设计过程中最为关键的步骤。
在面向对象的数据库设计中,我们需要先定义对象的属性和方法,由此建立对象间的联系。
属性可以是类似于关系数据库中的字段,而只要是对象内部的数据,就可以定义为属性。
方法就相当于面向对象程序中的函数,在调用方法时可以执行相应的操作。
在建立一个对象之前,需要采取的关键步骤是确定对象的属性和方法。
例如,在一个银行账户系统中,我们可以定义一个账户对象,它有账户号、姓名、余额等属性,有存款、取款、转账等方法。
在确立好对象的属性和方法之后,就可以建立相应的类,以及构建对象之间的关系,构成面向对象的数据库。
二、面向对象的数据库实现面向对象的数据库实现主要有两种方式:关系映射(Object-Relational Mapping, ORM)和数据库缓存(Object Database Management System,ODMS)。
ORM是一种通过映射数据库关系的方式将Java对象存储到关系型数据库中。
ORM技术将领域对象映射到关系型数据表上,使得开发人员能够像访问Java对象一样访问关系型数据库中的数据。
ORM技术的优点在于Java程序员不再需要编写SQL代码,这样大大降低了模块之间的耦合性。
ODMS技术是一种以对象作为数据储存的技术,它消除了传统的关系数据库中的表之间的联系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、分析考察用户 2、设计命令层次 1)研究用户交互的意义及准则 如果已建立的交互系统中已有命令层次,则先研究这个已有的交互界面的意义和准则。 2)建立初始命令层 可以以多种方式提供给用户,如窗口、按钮、下拉菜单、菜单条、可动的图标,等等。 3)细化命令层 为了细化命令层,应考虑如下几个问题: (1)排序。在开发命令层时,必须仔细选择不同的操作名称,并把这些名称按一定要求排序,将最有 用的放在前面,或者按习惯的工作步骤排序。 (2)组装。在操作中寻找组装结构模式,这有助于在层次中组织和分离操作。
子系统间交互的形式和交互的信息由接口确定,因此,接口应该简单、明确。
(1)面向对象设计的五个层次、四个部分 面向对象设计模型同样由主题、类-&-对象、结构、属性和服务等五个层次组成,并且 又扩充了问题域(PDC)、人机交互(HIC)、任务管理(TMC)和数据管理(DMC)四个部分。
典型的面向对象设计模型如图3.3.23示。
相对困难些。 (3) 系统组织
将子系统组织成完整的系统有两种方式,即水平层次组织和垂直块组织。 1) 层次组织
层次组织是将子系统按层组织成为一个层次软件系统,每层是一个子系统。上层建立在下层的基础 上,下层为上层提供必要的服务。低层子系统提供服务,相当于服务器,上层子系统使用下层提供的 服务,相当于客户。
图3.3.25 面向对象设计工作内容和步骤
一、问题空间类
是指那些直接从面向对象分析模型设计得到的类,它是使软件系统能够实现对问题的求解的 最基本的类,也是面向对象软件系统的核心类。
利用面向对象分析技术对问题进行了分析描述之后,就可以直接将其结果用于问题空间类的 设计,即直接将分析所得到的对象、对象与对象之间的关联确定为类以及类与类之间的关联, 这些直接从分析结果得到的类就是问题空间类。
不同对象之间耦合是不可避免的。两个对象必须相互联系相互依赖时,应该通过类的协议(即 公共接口)实现两个对象相互依赖(耦合),而不是通过类的具体实现细节来描述。
(5) 强内聚
所谓内聚,是一个模块内各个元素彼此结合的紧密程度。结合得越紧密内聚越强,结合得越不 紧密内聚越弱。强内聚也是衡量设计优良的一个重要标准。在面向对象设计中,内聚可分为下述三 类:
二、用户界面类
是指那些为实现人机交互接口而设计的类,它是使软件系统能够接收用户的命令和能够为用户 提供信息所需要的类。
用户界面类是为了使系统能够与用户进行交互而必须增添设计的类。在实际中,一个软件系统 常常会因为其用户界面使得用户不满意而遭到否定或弃之不用。因此用户界面类的设计是一项既 影响软件系统前途,又需要做耐心细致调查分析的重要工作。尽管在分析过程中已经对用户在用 户界面方面进行了分析,但是在设计过程中仍然必须继续做这项分析工作,必须具体设计确定交 互作用的时间、交互方式和交互技术等。
2) 块组织
块组织将系统垂直地分解成若干个相对独立的、弱耦合的子系统,一个子系统相当于一 块,每块提供一种类型的服务。例如,图3.3.24示一个典型应用系统的组织结构。
人机交 互控制
应用包 窗口图形 屏幕图形 像素图形 操作系统
计算机硬件
仿真 软件包
(4)设计系统的拓扑结构:构成完整系统的拓扑结构有:管道型、树型、星型等。
2)确定时钟驱动型任务
这种任务在特定的时间被触发执行某些处理。例如,某些设备要求周期性地获得数据或控制, 某些用户界面、子系统、任务、处理器或其它系统也可能需要周期性地通讯。此时就常用到时钟驱 动型的任务。
3)确定优先任务及临界任务
优先任务分高优先级和低优先级二种,用来适应处理的需要。临界任务是有关系统成功或失败 的临界处理,它尤其涉及严格的可靠性约束。
5)尽量减少要用户记忆的内容 不应该要求用户记下某窗口的信息而用于另一窗口中。 6)易学易用 为用户提供联机学习手册。 7)屏幕生动活泼 屏幕画面看起来能够吸引用户,唤起用户的注意和兴趣。
例如,对于大学教务管理问题,可以先根据对用户的分析设计如下页图所示的用户进入系统的屏 幕。
图示: 用户进入系统屏幕界面
(3)宽度和广度。由于人的短暂记忆局限,命令层次不宜太广太深。以3最为合适。 (4)极小化。尽量少用组合键,极小化用户的击键次数。 3、完成设计
当前由于软件开发工具,特别是可视化开发工具的日益丰富,完成用户界面的具体设计已经是一件 十分容易的事情了,但是在具体设计时不能忽略以下原则: 1)一致性 使用一致的术语,一致的步骤和一致的动作行为。 2)减少步骤 极小化击键次数、使用鼠标的次数和下拉菜单的次数,极小化响应时间。 3)尽量显示提示信息 尽量为用户提供有意义的、及时反馈信息。 4)设置取消操作 用户难免出错,应尽量能使用户取消其错误动作。
4)确定协调任务
当存在三个以上的任务时,就应该考虑增加一个任务,用它来协调任务。协调任务的引入当然 会增加系统的开销,但是引入协调任务有利于封装任务之间的协调控制。使用状态转换矩阵可以描 述该任务的行为。
2、分析任务 设计多任务系统的主要问题是设计人员常常定义太多的任务。原因是为了自己处理时的方便,
以一个字处理系统为例,如下图所示:
图示: 结构化方法设计结果
又例:下图示以及表1~8所示的是大学教务管理问题中的问题空间类。 图示:大学教务管理问题中的问题空间类
表5.1 Class : Student(学生)
数据变量
序号 名称
定义
类型
中文名称 备注
1
ID char(8)
描述型 学号
2
Name char(24)
[补充]:
概括地说,面向对象软件开发方法采用面向对象设计 (OOD)技术进行问题解决方案的设计工作, 它将问题的解决方案表述为:
类+关联
的形式,其中,类包括问题空间类、用户界面类、任务管理类和数据管理类,是从设计的角度出发 对问题解决方案中的对象的抽象和描述,关联则用于描述这些类和类之间的关系。
因此,面向对象设计工作主要包括问题空间类、用户界面类、任务管理类和数据管理类的设计, 具体工作内容和步骤如图3.3.25所示。
4
PutApplication ()
NULL 回答
5
Note ("message" )
NULL 通知
6 ChangePassword (NewPassword, OldPassword) NULL 修改
表5.2 Class : Graduate(研究生) 表5.3 Class : UnderGraduate(本科生) 表5.4 Class : RegisterRec(注册记录) 表5.5 Class : Course(课程) 表5.6 Class : GraduateCourse(研究生课程) 表5.7 Class : UnderGraduate(本科生课程) 表5.8 Class : SelectCourse(选课单)
在面向对象方法中,对象是属性和服务的封装体,这就实现了信息隐藏。类结构分离了接口与实现, 类的属性的表示方法和操作的实现算法,对于类的用户来说,都应该是隐藏的,用户只能通过公共接 口访问类中的属性。
(4) 弱耦合
所谓耦合,是指一个软件结构内不同模块之间互连的依赖关系。依赖关系越多耦合度越强,依 赖关系越少耦合度越弱。在面向对象方法中,对象是最基本的模块,不同对象之间相互关联的依赖 关系表示了耦合度。衡量设计优良的一个重要标准就是弱耦合,弱耦合的设计中某个对象的改变不 会或很少影响到其他对象。
因此,为了设计任务管理类,首先必须从所设计的系统有关类中找出需要并发进行的操作和那 些与特定运行平台有关的操作,然后再对它们进行分析设计
1、确定任务类型
1)确定事件驱动型任务
某些任务是由事件驱动而执行的。这种任务可能负责与设备的通讯,与一个窗口或多个窗口、 其它任务、子系统、其它处理器或其它系统的通讯。
但是这样做就增大了整个设计的技术复杂度,并且不容易理解。因此,在进行任务管理类的具体 设计前,必须仔细分析和选择各个任务,尽量使得任务的数目降低到最少。
3.系统分解与组织 面向对象设计同过程设计一样,自顶向下进行功能分解。在设计比较复杂的应用系统时,将系
统分解成若干个比较小的部分,再分别设计每个部分。这样既简化了应用系统,又降低了设计的 难度,并有利于实现和维护。
系统是根据功能来分解的,我们将系统分解的各个部分(即系统的主要组成部分)称为子系统。
面向对象设计及实现
1.面向对象设计的设计准则 (1) 模块化
模块化是软件设计的重要准则。在面向对象开发方法中,将对象定义为模块。对象把数据结构和 作用在数据上的操作(方法)封装起来构成模块。对象是组成系统的基本模块。 (2) 抽象
类是一种抽象数据类型,在该数据类型之上,可以创建对象(类的成员)。类包含相似对象的共同属 性和服务,它对外定义了公共接口,构成了类的规格说明(即协议),供外界合法访问。 (3) 信息隐藏
然后,根据针对该用户界面和大多数面向对象软件开发环境所提供的可重用类设计相应的用 户界面类,设计结果如下页图所示。
图示:大学教务管理问题的部分用户界面类和问题空间类
其中,Window、EditField、StaticField和Button等类 一般可从开发环境提供的类库中通过 继承重用获得,需要进一步做的设计工作主要是设计有关与问题空间类和任务管理类进行通讯的操 作。例如需要为OKButton类设计一个向问题空间类中的Student类发送检验消息的操作。
主题层 类-&-对象层
结构层 属性层 服务层
人 机 界 面 HIC
问 题 论 域 PDC
任 务 管 理 TMC
图3.3.23 典型的面向对象设计模型
数 据 管 理 DMC
(2)子系统间的交互方式 在应用系统中,子系统之间的关系可分为客户/服务器关系和同等伙伴关系两种。这两种关系对应