UML类图实例分析断弯刀

考虑到系统扩展性,在本实例中引入了抽象数据访问接口IUserDAO,再将具体数据访问对象注入到业务逻辑对象中,可通过配置文件(如XML文件)等方式来实现,将具体的数据访问类类名存储在配置文件中,如果需要更换新的具体数据访问对象,只需修改配置文件即可,原有程序代码无须做任何修改。

类说明:

方法说明:

某基于Java语言的C/S软件需要提供注册功能,该功能简要描述如下:

用户通过注册界面(RegisterForm)输入个人信息,用户点击“注册”按钮后将输入的信息通过一个封装用户输入数据的对象(UserDTO)传递给操作数据库的数据访问类,为了提高系统的扩展性,针对不同的数据库可能需要提供不同的数据访问类,因此提供了数据访问类接口,如IUserDAO,每一个具体数据访问类都是某一个数据访问类接口的实现类,如OracleUserDAO就是一个专门用于访问Oracle数据库的数据访问类。

根据以上描述绘制类图。为了简化类图,个人信息仅包括账号(userAccount)和密码(userPassword),且界面类无需涉及界面细节元素。

参考解决方案:

在以上功能说明中,可以分析出该系统包括三个类和一个接口,这三个类分别是注册界面类RegisterForm、用户数据传输类UserDTO、Oracle用户数据访问类OracleUserDAO,接口是抽象用户数据访问接口IUserDAO。它们之间的关系如下:

(1)在RegisterForm中需要使用UserDTO类传输数据且需要使用数据访问类来操作数据库,因此RegisterForm与UserDTO和IUserDAO之间存在关联关系,在RegisterForm中可以直接实例化UserDTO,因此它们之间可以使用组合关联。

(2)由于数据库类型需要灵活更换,因此在RegisterForm中不能直接实例化IUserDAO的子类,可以针对接口IUserDAO编程,再通过注入的方式传入一个IUserDAO接口的子类对象(在本书后续章节中将学习如何具体实现),因此RegisterForm和IUserDAO之间具有聚合关联关系。

(3)OracleUserDAO是实现了IUserDAO接口的子类,因此它们之间具有类与接口的实现关系。

注意:在绘制类图或其他UML图形时,可以通过注释(Comment)来对图中的符号或元素进行一些附加说明,如果需要详细说明类图中的某一方法的功能或者实现过程,可以使用如图所示表示方式:

(1)目的地键盘用来输入行程目的地的代码(例如,200表示总站)。

(2)乘客可以通过车票键盘选择车票种类(单程票、多次往返票和座席种类)。

(3)继续/取消键盘上的取消按钮用于取消购票过程,继续按钮允许乘客连续购买多张票。

(4)显示屏显示所有的系统输出和用户提示信息。

(5)插卡口接受MCard(现金卡),硬币口和纸币槽接受现金。

(6)打印机用于输出车票。

(7)所有部件均可实现自检并恢复到初始状态。

现采用面向对象方法开发该系统,使用UML进行建模,绘制该系统的初始类图。

THE END
1.Java中的UML类图实现类图是最常用的UML图,他可以清楚地表示程序中类的基本结构,类与类之间的结构关系,掌握UML类图对于了解系统的总体结构和设计模式有着重大的作用。 下面介绍类图的基本知识以及类图在Java中的基本实现形式。 类(Class) 面向对象编程中,类是对象的骨架,它了包含3个组成部分。 https://www.jianshu.com/p/ddb590255975
1.一文搞懂UML类图统一建模语言 UML (Unified Modeling Language) 类图是一种用于描述系统结构的图形化工具。它以类和对象为基础,主要用于表示系统中的类、接口、继承关系、关联关系等元素,以及它们之间的静态结构和关系。在本文中,将深入介绍UML类图的基本元素、关系类型以及如何创建一个简单而有效的类图。 https://blog.csdn.net/sxlishaobin/article/details/143716574
2.UML概述类图关系及连接线表示FreeLikeTheWind的技术博客四、UML类图的六种关系 类的关系线条 类的关系基本包含以下几种: 0.类的表示 类的表示:最上方是类名,中间是属性,下面是方法。+表示公有,-表示私有,#表示保护。 1.继承 继承是用空心三角+实线表示。箭头指向基类或父类。 子类或派生类继承自父类或基类。可以在子类和派生类中声明自己的方法和属性。 https://blog.51cto.com/u_16417016/12529548
3.UML图:类图–详细介绍腾讯云开发者社区一种特殊类型的关联 表示整体与部分关系的关联 描述了“has a”的关系 组合关系 组合是聚合关系中的一种特殊情况,是更强形式的聚合,又称强聚合 成员对象的生命周期取决于聚合的生命周期 聚合不仅控制着成员对象的行为,而且控制着成员对象的创建和析构 UML类图实例...https://cloud.tencent.com/developer/article/2105241
4.设计模式之UML(一)类图以及类间关系(泛化实现依赖关联...在UML类图中,用实线连接有关联关系的对象所对应的类,在使用Java、C#和C++等编程语言实现关联关系时,通常将一个类的对象作为另一个类的成员变量。在使用类图表示关联关系时可以在关联线上标注角色名,一般使用一个表示两者之间关系的动词或者名词表示角色名(有时该名词为实例对象名),关系的两端代表两种不同的角色,...https://www.kancloud.cn/digest/xing-designpattern/143734