ch03面向对象设计

合集下载

面向对象设计技术的使用教程

面向对象设计技术的使用教程

面向对象设计技术的使用教程面向对象设计技术是一种常用的软件设计方法,它能够提高代码的可重用性、可维护性和可扩展性。

本文将详细介绍面向对象设计的原则、概念和方法,以及如何在实际项目中应用这些技术。

一、面向对象设计的原则1. 单一职责原则(Single Responsibility Principle,SRP):一个类应该只有一个修改的原因。

2. 开放封闭原则(Open Close Principle,OCP):一个类应该对扩展开放,对修改封闭。

3. 里氏代换原则(Liskov Substitution Principle,LSP):子类对象能够替换父类对象。

4. 依赖倒置原则(Dependency Inversion Principle,DIP):高层模块不应该依赖低层模块,二者都应该依赖抽象。

5. 接口隔离原则(Interface Segregation Principle,ISP):客户端不应该强迫依赖它不需要的接口。

6. 迪米特法则(Law of Demeter,LoD):一个对象对其他对象的了解应该尽可能少。

二、面向对象设计的概念1. 类和对象:类是一种抽象的概念,用来描述一类具有相同属性和行为的对象。

对象是类的一个实例。

2. 封装:将数据和方法封装到一个类中,并对外提供接口进行访问。

3. 继承:通过继承机制,子类可以继承父类的属性和方法,并能够添加、修改或重写特定的属性和方法。

4. 多态:同一种行为具有多种不同的实现方式或表现形式,提高了代码的灵活性和可扩展性。

5. 抽象:通过抽象类和接口实现对类的更高层次的抽象,可以使代码更加模块化和可维护。

三、面向对象设计的方法1. 定义类的属性和方法:首先确定类的名称和作用,然后根据单一职责原则定义类的属性和方法。

2. 进行类之间的关系分析:根据具体项目的需求,确定类与类之间的关系,包括继承、关联、聚合和组合等。

3. 设计类的接口:根据接口隔离原则,定义一个类应该提供的接口,以便与其他类进行交互。

《面向对象程序设计》教案

《面向对象程序设计》教案

《面向对象程序设计》教案一、教案简介本教案旨在帮助学生掌握面向对象程序设计的基本概念、原理和方法,培养学生的编程能力和软件开发思维。

通过本课程的学习,学生将能够熟练运用面向对象的编程语言,如Java或C++,进行软件开发和设计。

二、教学目标1. 了解面向对象程序设计的基本概念,如类、对象、封装、继承和多态等。

2. 掌握面向对象程序设计的基本原则,如单一职责原则、开闭原则、里氏替换原则等。

3. 学会使用面向对象的编程语言进行程序设计和开发。

4. 培养学生的软件开发思维和团队协作能力。

三、教学内容1. 面向对象程序设计的基本概念1.1 类与对象1.2 封装1.3 继承1.4 多态2. 面向对象程序设计的基本原则2.1 单一职责原则2.2 开闭原则2.3 里氏替换原则2.4 接口隔离原则2.5 依赖倒置原则3. 面向对象的编程语言3.1 Java3.2 C++4. 面向对象的设计模式4.1 创建型模式4.2 结构型模式4.3 行为型模式四、教学方法1. 讲授法:讲解面向对象程序设计的基本概念、原理和编程方法。

2. 案例分析法:分析实际项目中的面向对象设计案例,让学生理解并掌握面向对象的设计思想。

3. 实践操作法:让学生通过编写代码,亲身体验面向对象程序设计的流程和方法。

4. 小组讨论法:分组进行讨论,培养学生的团队协作能力和解决问题的能力。

五、教学评价1. 课堂参与度:评估学生在课堂上的发言和提问情况,了解学生的学习兴趣和积极性。

2. 课后作业:布置相关的编程作业,检查学生对面向对象程序设计知识的掌握程度。

3. 项目实践:评估学生在团队项目中的表现,包括代码质量、设计思路和团队协作能力。

4. 期末考试:全面测试学生对面向对象程序设计知识的掌握情况。

六、教学资源1. 教材:推荐《Java面向对象程序设计》、《C++ Primer》等经典教材。

2. 在线资源:提供相关的在线教程、视频课程和编程练习平台,如慕课网、Coursera、LeetCode等。

C++面向对象程序设计第三章习题答案解析

C++面向对象程序设计第三章习题答案解析

C++⾯向对象程序设计第三章习题答案解析整理⼀下⾃⼰写的作业,供考试前复习⽤,哈哈进⼊正题题⽬:2.分析下⾯的程序,写出其运⾏时的输出结果这⾥就不展⽰课本源代码,直接给出修改后的代码,错误部分代码已给出具体的注释1 #include<iostream>2//原题的#include<iostream.h>写法错误3 #include<stdlib.h>4//⽤于解决闪屏的头⽂件5using namespace std;6//原题缺少该⾏代码,⽤于输⼊cin和输出cout7class Date{8public:9 Date(int,int,int);10 Date(int,int);11 Date(int);12 Date();1314void display();15private:16int month;17int day;18int year;1920 };2122 Date::Date(int m,int d,int y):month(m),day(d),year(y){}2324 Date::Date(int m,int d):month(m),day(d)25 {year=2005;}2627 Date::Date(int m):month(m)28 {day=1;year=2005;}2930 Date::Date()31 {month=1;day=1;year=2005;}3233void Date::display()34 {35 cout<<month<<"/"<<day<<"/"<<year<<endl;36 }3738int main()39 {40 Date d1(10,13,2005);41 Date d2(12,30);42 Date d3(10);43 Date d4;44 d1.display();45 d2.display();46 d3.display();47 d4.display();48 system("pause");49//解决闪屏的代码50return0;51 }运⾏结果:3.如果将第2题中程序的第四⾏改为⽤默认参数,即Date(int =1,int =1,int =2005);分析程序有⽆问题。

面向对象23种设计模式

面向对象23种设计模式

面向对象23种设计模式面向对象23种设计模式在面向对象的编程中,设计模式是一种解决问题的通用方案。

设计模式可以帮助开发人员在开发过程中减少代码的冗余和复杂性,并提高代码的可维护性和可重用性。

本文将介绍23种面向对象的设计模式。

1. 工厂方法模式工厂方法模式是一种创建型设计模式,它定义了一个用于创建对象的接口,但是让子类决定实例化哪个类。

在工厂方法模式中,客户端不需要知道具体的创建逻辑,只需要知道工厂类中定义的接口即可。

2. 抽象工厂模式抽象工厂模式是一种创建型设计模式,它提供了一个接口,用于创建相关或依赖对象的家族,而不需要指定它们的具体类。

在抽象工厂模式中,客户端不需要知道具体的创建逻辑,只需要知道工厂类中定义的接口即可。

3. 单例模式单例模式是一种创建型设计模式,它保证一个类只有一个实例,并提供一个访问该实例的全局点。

4. 原型模式原型模式是一种创建型设计模式,它允许复制或克隆一个现有的对象,而不必知道其具体实现。

5. 建造者模式建造者模式是一种创建型设计模式,它允许逐步创建复杂的对象,而不必知道其内部实现细节。

6. 适配器模式适配器模式是一种结构型设计模式,它将一个或多个不兼容的类或接口转换为客户端所需的接口。

7. 桥接模式桥接模式是一种结构型设计模式,它将抽象部分与其实现部分分离开来,以便独立地进行修改。

8. 组合模式组合模式是一种结构型设计模式,它将一组对象作为单个对象处理,以便客户端可以以相同的方式处理单个对象和组合对象。

9. 装饰器模式装饰器模式是一种结构型设计模式,它允许向现有对象添加额外的功能,同时不改变其现有的结构。

10. 外观模式外观模式是一种结构型设计模式,它为一组复杂的子系统提供了一个统一的接口,以便于客户端使用。

11. 享元模式享元模式是一种结构型设计模式,它利用共享技术来最小化内存使用,以及提高应用程序的性能。

12. 代理模式代理模式是一种结构型设计模式,它提供了一个代理对象,使得客户端可以通过代理对象间接地访问实际对象。

面向对象设计的三大原则,理解并能举例

面向对象设计的三大原则,理解并能举例

面向对象设计的三大原则,理解并能举例
面向对象编程设计有三大原则,分别是封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。

1. 封装(Encapsulation):封装是将数据和相关行为(方法)
组合在一个类中,以实现隐藏内部实现细节的原则。

通过封装,可以将一组数据和对它们的操作封装在一个类中,对外部只暴露必要的接口,隐藏了实现的细节,提高了代码的安全性和可维护性。

例如,一个汽车类可以封装了颜色、品牌、速度等变量和加速、刹车等方法,对外只提供加速和刹车的接口,而隐藏了内部细节。

2. 继承(Inheritance):继承是指创建一个新类(子类)从已
有的类(父类)中继承属性和方法的过程。

子类可以通过继承父类的特性来扩展和增强功能,并且可以重用已有的代码。

例如,有一个动物类,定义了一些公共属性和方法,然后创建了狗类和猫类继承动物类,狗类和猫类就可以共享动物类的一些功能,同时可以根据需要添加自己的特定功能。

3. 多态(Polymorphism):多态是指同一类对象在不同情况下
可以表现出不同的行为。

对象多态性使用继承和接口实现,通过动态绑定和方法重写,允许不同的对象对同一个方法做出不同的响应。

例如,一个动物类中有一个叫声的方法,猫类和狗类都继承了动物类,并重写了叫声的方法,当通过调用叫声方法时,猫和狗的叫声不同,实现了多态性。

这三个原则是面向对象设计的基石,有助于实现代码的可重用性、可扩展性和灵活性。

《面向对象程序设计》实验指导书 (1-6个实验,含参考代码)要点

《面向对象程序设计》实验指导书 (1-6个实验,含参考代码)要点

面向对象程序设计实验指导书(适用:电子信息11级)彭召意陶立新编写计算机与通信学院2014.9目录实验一 C++基础的应用 (1)实验二类和对象的应用 (3)实验三类的构造函数、析构函数的应用 (4)实验四友员和运算符重载 (5)实验五类的继承与派生 (6)实验六类的多态性与虚函数 (7)附录:各实验的程序代码 (8)实验一 C++基础的应用(实验课时:2 实验性质:设计)实验名称: C++基础的应用实验目的: (1)进一步学习VC++6.0开发环境及程序调试方法。

(2)练习C++函数的定义及使用;(3)练习C++数组的定义及使用;(4)练习C++指针的定义及使用;(5)练习C++结构体的定义及使用;(6)练习多文件的程序的编译和运行方法;实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬盘40GB);(2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为Visual C++6.0。

实验内容: (1)熟悉Visual C++6.0编译系统的常用功能,特别是debug调试功能;(2)编程1:编写一个程序c1.cpp,用来求2个或3个整数的最大数。

要求:用重载函数的方法来求最大数;函数原型:int max( int a, int b) 和int max( int a, int b,int c)。

(3)编程2:编写一个程序c2.cpp,求:a!+ b! + c!的值。

要求:使用递归函数。

主程序和函数分开到两个源程序文件中,分别进行编译后,再运行;(4)编程3:有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号;(5)编程4:建立一个动态链表并进行输出和删除管理。

链表的每个节点为学生信息,包括:学号,姓名,性别,下一学生信息的指针。

程序的工作:(a)建立三个学生信息的节点,然后顺序输出该三个学生信息;(b)删除中间的节点,再顺序输出学生信息。

面向对象设计模型

面向对象设计模型

面向对象设计模型引言面向对象设计模型是软件工程中一种常用的设计方法,通过将事物抽象为对象,然后通过对象之间的交互来解决问题。

面向对象设计模型有助于构建可维护、可重用和可扩展的软件系统。

本文将介绍面向对象设计模型的基本概念,以及如何应用它来设计高质量的软件系统。

什么是面向对象设计模型面向对象设计模型是一种软件设计方法,它将事物抽象为对象,对象之间通过消息传递来进行通信和协作。

面向对象设计模型的核心概念包括封装、继承和多态。

•封装:封装是将数据和行为组合到一个对象中,并对外部隐藏对象的内部细节。

通过封装,可以将复杂的系统拆分为多个简单的对象,每个对象只需关注自身的责任和行为。

•继承:继承是一种机制,允许在现有的类基础上创建新的类,并且继承原有类的属性和方法。

通过继承,可以实现代码的复用,减少重复编写类似的代码。

•多态:多态是指同一种方法可以根据接收到的不同对象所属的类而表现出不同的行为。

通过多态,可以提高代码的灵活性和可扩展性。

面向对象设计模型的目标是创建易于理解、可重用、可扩展和可维护的软件系统。

它强调将系统分解为小而简单的对象,每个对象都有明确的职责和行为。

通过对象之间的交互,可以实现系统的功能。

面向对象设计模型的设计原则面向对象设计模型遵循一些设计原则,这些原则有助于创建高质量的软件系统。

下面介绍几个常用的设计原则:1.单一职责原则(SRP):一个类应该只有一个责任,在软件设计中,应该将不同的职责分离到不同的类中。

这样可以提高类的内聚性和代码的可读性。

2.开放封闭原则(OCP):软件系统的设计应该对扩展开放,对修改关闭。

这意味着通过添加新的代码来扩展系统的功能,而不是修改已有的代码。

这样可以减少系统的风险,提高可维护性。

3.里氏替换原则(LSP):子类型必须能够替换掉它们的父类型。

这意味着在使用继承时,子类不应该破坏父类的特性和约束。

这样可以使得系统更加灵活,可扩展。

4.接口隔离原则(ISP):使用多个专门的接口,而不是一个总接口。

《面向对象设计》PPT课件

《面向对象设计》PPT课件
一般来说,所有的继承都会引入编译时依赖 性。依赖性是可传递的,也就是说,如果C依赖 B,B依赖A,那么C也依赖A。
类及其依赖性
② 运行时继承依赖性
下图举例说明了在一棵继承树中涉及客户对象访问类服务的运行时 继承依赖性。图中类B的do1( )方法是从父类A继承来的,因此Test与 B没有运行时继承依赖性,只是一个静态依赖性,通过从Test到A的关 联来表明。如果在doTest方法中调用的是do2( )方法,或者在B中覆盖 了A的do1( )方法,则从Test到A和B就会存在运行时依赖性。
接口及其依赖性
2.实现依赖性
一个类可以实现多个接口,由类实现的接口集合称为该 类的供给接口。在UML2.0中,将一个类和该类实现的接口 之间的依赖性称为实现依赖性。
右图所示为实现依赖性的 UML符号,在箭头末端的类 实现了箭头所指向的接口。 从图中可以看到,Class1实 现了Interface1接口和 Interface2接口,而Class2 只实现了Interface2接口。
包及其依赖性
1. 包
包(package)又可称为层或子系统,是表示组织类的一 种方式,用于划分应用程序的逻辑模型。包是高度相关的类 的聚合,这些类本身是内聚的,但相对于其他聚合来说又是 松散耦合的。
包可以嵌套。外层包可以直接访问包括在它的嵌套包中的 任何类。包还可以导入其他包,例如,在包A中导入了包B, 这意味着包A或者包A的元素可以引用包B或者包B的元素。 因此,虽然一个类只属于一个包,但是它可以被导入其他包。 包的导入操作会引入包之间的依赖性以及它们的元素之间的 依赖性。
类及其依赖性
(2)无多态继承 使用继承最简单的方式是子类不覆盖从父类继承来的方法,
这样就不存在多态性继承问题。虽然无多态的继承有时并不 是十分有用,但理解和管理起来是最容易的。 (3)扩展继承和约束继承
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(2)在确定了对象的属性后,应对各属性命名以示区别,命名原则与对象名原则相同。并应对每个属性加 以详细说明,包括以下信息:
属性的解释 属性的数据类型 属性的取值范围及与对象类所体现的关系 属性的实现要求和其他
3、标识对象类的操作
操作定义了对象的行为并以某种的方式修改对象的属性值或系统的状态。 操作可以通过对系统的过程叙述的分析提取出来,通常叙述中的动词可作为候选的操作。 (1)命名 操作的标识名 与类和属性的命名不同,操作名的命名应该采用动词或动词名词组成的动宾结构,操作名尽可能准确的反
(3)筛选对象 可以根据关键性、可操作性、信息含量、公共属性、公共操作和关键外部信息等来选择和确定最终的对象。 (4)对象分类 对象还可以根据有形性、包含性、顺序性、完整性等特征来进行分类。
2. 标识对象类的属性
对象类的属性和操作是对象类所知道的或要做的任何事情。 标识属性过程包括寻找潜在属性、筛选属性原则和应注意的问题、标识属性名、属性说明。
41
同步消息
同步消息假设有一个返回消息,在发送消息的对象进行另一个活动之前需要等待返回的回应消
息。消息被平行地置于对象的生命线之间,水平的放置方式说明消息的传递是瞬时的,即消息在发
出之后会马上被收到。
网购系统
用户
搜索商品 返回搜索结果
42
异步消息
异步消息表示发送消息的对象不用等待回应的返回消息,即可开始另一个活动。异步消息在
4)产品管理窗口类:负责产品信息的录入、修改、查询等管理。 5)履约合同管理窗口类:负责以履约销售合同数据的查询、统计等管理。 6)付款单管理窗口类:负责以付款单数据的查询、统计、打印等管理。 7)催款单管理窗口类:负责以催款单数据的查询、统计、打印等管理。
3、找出系统控制类
销售管理子系统至少应该有一个控制其他类工作的控制类。销售管理子系统中的销售管理子系统主管理窗 口类就是一个控制类。
的对象,这条线可以有自己的名称,用来描述两个对象之间具体的交互内容。
40
消息简介
消息是用来说明顺序图中对象之间的通信,可以激发操作、创建或撤销对象。
为了提高可读性,顺序图的第一个消息总是从顶端开始,并且一般位于图的左边。然后将继发的消
息加入图中,稍微比前面的消息低些。
简单消息 同步消息 异步消息 返回消息
销售人员 生产调度管理部门 履约合同
客户 大客户 销售合同
经理 货款 付款单
销售部门 产品 催款单
财务管理部门 销售计划 库存管理部门
合同履约率
通过筛选,排除一些可能属于某个类的属性(合同履约率)以及一些不具备独立意义的名词(如货款), 可以将财务管理部门、生产调度部门几个名词抽象为财务管理子系统和生产调度子系统,排除这些属于销 售管理子系统和库存管理子系统范围之外的子系统,再排除系统自身的名词,如销售管理部门等,最后筛 选出符合销售管理子系统的对象类。
(1)对象:顺序图中所包含的每个对象用一对象框(短式)表示,对象名需带下划线。 (2)生存线:对象框下画的一条垂直虚线,称为该
对象的生存线,表示对象的生存时间。 (3)激活期:对象生存线上的一个细长方形 框,
表示该对象的激活时间段,即活动期间。 (4)消息:对象之间消息的发送和接收用两个对象
生存线(激活期)之间的消息箭头线。
(1)可以从以下角度来发现和确定对象潜在的属性 常识性:按一般常识,对象应具有的属性。 专业性:在当前问题域中,该对象应具有的属性。 功能型:根据系统功能的要求,该对象应具有的属性。 管理性:建立该对象是为了保存和管理哪些属性。 操作性:为了实现对象的操作功能,需要增设哪些属性。 标志性:是否需要增设属性来区别对象的不同状态。 外联性:用什么属性来表示对象的整体-部分联系和实例链接。
(1)发现潜在对象 例如: 与系统交互的角色。如管理者、工程师、销售员。 系统的工作环境场所。如车间、办公室。 概念实体、发生的事件或事情。如报告、显示、信函、信号。 设备。如汽车、计算机。 与系统有关的外部实体。如其他系统、设备、人员等,他们生产或消费计算机所使用的信息。
(2)标识对象名的原则 使用单个名词或名词词组 对象名称必须简洁明了、含义明确、易于理解 尽量使用用户熟悉的行业标准术语
3.2.3 销售管理子系统中类的属性和操作
3.2.4 类的模型符号描述 客户类详细的定义和描述
3.2.5 系统建模过程
建立系统的对象类图就是建立系统的静态结构模型,它包括确定和建立对象类图、建立对象类及其之间的 联系,确定其静态结构和动态行为。
3.2.6 类的继承建模
在上一小节的销售管理子系统中创建了几个类:销售人员类、公司经理类、客户类和大客户类,这几个类 都有一些相同的属性和操作。
例如,每个类都有姓名、性别、电话、邮箱等属性,可以把这些具有共同属性的内容抽象出来,再定义一 个人类,称其为基类。
在实际变成过程中,销售人员类、公司经理类、客户类和大客户类可以通过继承的方式继承人类的姓名、 性别、电话、邮箱等属性。这样就可以省却大量重复编码的麻烦,达到一定的代码复用效果。
另外,销售合同类和履约合同类之间也有很多相同的属性和操作。例如,甲方、乙方、商品名称、规格型 号、单位、单价、数量、总金额、发货时间等;和增加合同()、修改合同()等操作。可以把这些两个 类共有的内容抽象出来,形成 一个新类:合同类。
3.2.1 销售管理的业务需求描述
(1)制定销售计划 销售人员根据企业生产能力和对当前市场行情预测制定月、季度和全年产品销售计划,上报主管经理批准,
并送财务管理、库存管理和生产调度管理部门备案。 (2)签订销售合同 销售人员与客户签订销售合同。销售合同内容主要包括:合同编号、甲方、乙方、产品名称、规格、单位、
序号 1 2 3 4 5 6 7 8 9 10
类名 Client BigClient SalesPerson Manager Product SalesProject SalesContract FulfilContract PaymentBill UrgeFunBill
含义 客户类 大客户类 销售人员类 公司经理类 产品类 销售计划类 销售和同类 履约合同类 付款单类 催款单类
2、找出边界类
边界类主要是指系统与用户交互界面有关的类。销售管理子系统中设计与用户交互的界面类有8个: 1)销售计划管理窗口类:负责销售计划的制定、录入、统计、打印查询等管理。 2)客户管理窗口类:负责客户信息的录入、修改、查询等管理。 3)销售合同管理窗口类:负责销售合同数据的录入、修改、查询、统计、打印等管理。
映该操作的智能。
(2)对每个操作应加以详细说明,包括以下信息: 操作解释:作用与功能。 消息协议:入口消息格式。 消息发送:执行期间,需要请求哪些其他对象的操作。 约束条件:执行的前置、后置条件及执行事件等说明事项。 操作流程:对复杂的操作应画出操作过程流程图。
3.2 案例分析 本案例重点对“进销存管理子系统”的“销售管理”进行详细描述。
3.1 对象类建模
类是包装信息和行为的基本单元,是面向对象的重要特征之一。 一个类实现一个或多个接口 UML中类有三种主要的版型:实体类(entity)、边界类(boundary)和控制类(control)。
实体类
实体类创建持久对象,持久对象可以存放进持久存储体。持久存储体就是存放在硬盘上的以面向对象数据 库、关系数据库和文件等形式可以永久存储对象数据的介质。
(4)生产调度管理部门组织生产
生产调度管理部门按销售合同规定的产品名称、规格、数量、交货时间组织生产。
(5)库存管理部门对产品进行入库、出库管理
库存管理部门按销售合同规定的产品名称、规格、数量、交货时间准备货物,对生产部门生产的产品进行 入库验收、存储,根据销售部门的出库申请单对产品进行出库、发货等操作。
象正在执行某个动作。
购物系统 顾客1:进入系统
商品信息
2:查询商品
38
对象
类定义了对象可以执行的各种行为,但是在面向对象的系统中,行为的执行者是对象,而不是
类,因此顺序图通常描述的是对象层次而不是类层次。
39
消息
为了显示一个对象传递一些信息或命令给另外一个对象,使用一条线从对象指向接收信息或命令
功能描述 与销售人员签订销售合同,从仓库提取货物 与销售人员签订大宗合同,企业负责发货 与客户签订销售合同,催款、提货、督促合同履约等 检查合同履约率、库存货物资产核对表等 由生产部门生产、仓库部门保管、销售部门负责销售 有销售人员制定,保证企业产品及时得到销售 销售人员与客户签订的一种销售协议 存放到履约合同库,用于作为证据以便索引查询 提供给客户的一种付款凭证 提醒客户及时支付所欠款项,保证企业资金周转
实体类可以通过事件流和交互图发现。 对于关系数据库而言,每个实体类映射数据库中相应的一个二维表,实体类中的属性对应该表中的字段,
而每个对象就是该表中的一条记录。
控制类
控制类是控制其他类工作的类。 每个用例通常有一个控制类,用来控制用例中事件发生的顺序,控制类也可以在多个用例间共用。 其他类一般不向控制类发送消息,而是由控制类向其他类发出消息。
单价、数量、总金额、发货时间、发货量、客户付款时间等。合同生效后,客户向财务管理部门交付货款 并从仓库提取产品。大客户可由企业安排发货送货。
(3)检查合同履约率
销售合同执行期间,销售人员要定期检查合同履约情况。督促“生产调度管理部门”按合同组织生产,按 时从仓库提取产品发送给客户。销售人员及时向客户催缴合同中约定的应付货款,打印催款单,检查合同 履约情况,合同执行完毕,设置合同履约标识。
3.1.1 确定对象类
1、确定对象类 正确识别对象类是面向对象方法的基础。 确定和标识类包括发现潜在对象、标识对象名、筛选对象、为对象分类。
(1)发现潜在对象 一组具有相同属性和操作的对象可以定义成一个类,因此标识类和标识对象是一致的。 可以从问题陈述或用例描述着手发现潜在的对象,通常陈述中的名词或名词短语是可能的对象。
相关文档
最新文档