我使用Swing在Java中实现了一个简单的ATM系统(我知道Swing已经不再被使用了,但是我希望它简单一些)。
- 我有一个
Customer
类,它保存客户的信息,并有一个login()
方法 - 我有一个
Account
类,它保存有关帐户的信息,并具有取款、存款和转账的方法 - 我有一个
Transaction
类,用于保存事务信息,还有一个generateReceipt()
方法,用于创建和导出包含事务信息的PDF - 我有一个
ATM
类,它保存登录的帐户和相应的客户,并具有用于获取事务(如当前帐户事务)的静态方法 - 最后,我有一个
Admin
类,它将用户名和密码作为属性和方法,用于获取所有客户和帐户、添加客户或创建帐户以及删除客户或帐户。
我的应用程序使用MySQL数据库来存储信息和进行更新。此外,客户可以有多个帐户,一个可以使用帐号和PIN登录系统。
我画了用例图和类图,没有考虑类图中的UI。
我很难为这个应用程序创建序列图,因为我所有的类和对象都在Swing创建的类中使用。考虑到它是一个Swing应用程序,我应该如何构造我的序列图?2我应该添加UI类还是应该使它更概念化,只描述其他5个类之间的过程和关系?3任何帮助都是非常感谢的!
我试着将尽可能多的逻辑从实际UI中分离出来,但是我仍然不知道当客户和管理员与Swing框架交互时,我的序列图应该是什么样子。
1条答案
按热度按时间ddrv8njm1#
没有任何应用程序内部组件的类图是一个“域模型”。它的目标不是记录应用程序中所有可能使用的类,而是专注于域知识,与应用程序的实现方式无关。如果你有一个真实的的ATM设备,如果你要实现一个Web服务,或者如果你要使用任何其他UI框架,这个图都是一样的。
因此,您已经清楚地选择了图表要显示的内容。您可以完美地选择拥有庞大的类图表,包括业务逻辑、数据库交互和UI所需的类(例如,使用著名的Entity Boundary Control模式)。这样,图表将更加依赖于您的实现选择。
序列图也是一样,没有最好的方法来绘制这个图。问题只在于你希望这个图关注什么:你想对域逻辑建模吗?在这种情况下,你将使用你的域类并展示它们是如何交互的。或者你想对详细的应用程序设计建模,在这种情况下,你可以设想也添加UI类。但是图表很快就会变得非常复杂,你最好把它们分解成几个更简单的SD,每种方法都侧重于详细技术设计的某些部分。