在UML类图中,在哪里显示域类的DAO方法
我正在尝试构建UML类图。我对UML有点陌生,请原谅我的无知 我有一个域类在UML类图中,在哪里显示域类的DAO方法,uml,dao,visio,class-diagram,domain-model,Uml,Dao,Visio,Class Diagram,Domain Model,我正在尝试构建UML类图。我对UML有点陌生,请原谅我的无知 我有一个域类User,具有以下属性: 用户名;数据类型为字符串;标识符 密码;数据类型为字符串 活跃的;数据类型为bool 锁定;数据类型为bool 密码过期日期;数据类型是DateTime 这就是我在UML中构建它的方式: 现在我想在UML类图中定义这个User类的这些操作: 通过从数据库中提供的标识符检索用户对象 将检索到的用户对象的密码与提供的密码匹配 密码 检查检索到的用户是否处于活动状态 检查检索到的用户是否已锁定 检
User
,具有以下属性:
- 用户名;数据类型为字符串;标识符
- 密码;数据类型为字符串
- 活跃的;数据类型为bool
- 锁定;数据类型为bool
- 密码过期日期;数据类型是DateTime
User
类的这些操作:
所有其他方法都在处理单个
用户
对象,这意味着单个用户
对象已经从数据库中检索到,或者它是一个新对象但是方法#1对
User
对象的集合有意义,这意味着数据库中已经存在的所有用户对象
这有意义吗?还是错配?如果是,我如何修复它
谢谢
更新 感谢您提到UML类图中的类级操作。我不知道他们 所以我做了更改,这是
User
class的最新UML类图:
现在它是正确的吗?我想我应该把它建模为一个静态的或类的操作。这种类型的操作不需要
用户
实例
静态方法的UML表示法是对其加下划线
我还将
Add()
和Update()
合并为一个Save()
操作。跟踪对象的持久状态并不取决于对象的用户。这将避免添加现有对象或更新不存在的对象等问题。我想我会将该对象建模为静态操作或类操作。这种类型的操作不需要用户
实例
静态方法的UML表示法是对其加下划线
我还将
Add()
和Update()
合并为一个Save()
操作。跟踪对象的持久状态并不取决于对象的用户。这将避免添加已存在的对象或更新不存在的对象等问题。请注意,这不仅是您的方法#1,而且是您的AddUser
方法“处理用户对象集合,这意味着数据库中已存在的所有用户对象”。事实上,所有CRUD方法在处理相应的数据库表填充时都是不同的
使用DAO方法,您可以以类级(“静态”)方法的形式定义CRUD数据访问方法
retrieveUser
和deleteUser
,因为它们不处理上下文对象(如Geert Bellekens所述),而是将对象ID(在您的例子中是UserName
)作为其唯一参数。另外两个CRUD方法,createUser
和updateUser
,通常也不适用于上下文对象(在您的例子中是User
对象),而是具有通过用户界面输入的数据值的参数。对于createUser
(您的AddUser
),只有当数据值满足模型类User
中定义的所有约束时,才会创建User
对象。在updateUser
的情况下,仅当更改的值不违反任何约束时才会执行更新。请注意,“处理用户对象集合,即数据库中已存在的所有用户对象”不仅是您的方法1,也是您的AddUser
方法。事实上,所有CRUD方法在处理相应的数据库表填充时都是不同的
使用DAO方法,您可以以类级(“静态”)方法的形式定义CRUD数据访问方法
retrieveUser
和deleteUser
,因为它们不处理上下文对象(如Geert Bellekens所述),而是将对象ID(在您的例子中是UserName
)作为其唯一参数。另外两个CRUD方法,createUser
和updateUser
,通常也不适用于上下文对象(在您的例子中是User
对象),而是具有通过用户界面输入的数据值的参数。对于createUser
(您的AddUser
),只有当数据值满足模型类User
中定义的所有约束时,才会创建User
对象。在updateUser
的情况下,仅当更改的值不违反任何约束时才会执行更新。我使用专用的单例类来处理此类静态访问。我已使用类级操作更新了post。现在可以了吗?我正在使用一个专用的单例类来处理这种静态访问。我已经用类级操作更新了帖子。现在可以了吗?我已经用类级操作更新了帖子。现在可以了吗?我已经用类级操作更新了帖子。现在可以了吗?我已经把我的答案精炼了一点。请注意,您应该将属性UserName
指定为