我正在尝试将一些OOP原则应用到一些C抽象数据类型模型中。给定一个抽象Employee的ADT,其中Employee实例是不可变的(在实例化Employee时,它提供了唯一的主键名称和姓氏,并且这个主键在Employee对象生命周期中保持不变),我想知道这个ADT是否应该关心将他的数据保存在数据库中。
因此,给出ADT的这段代码:
static char* address; //Address of the Employee
TakeNewAddress(char* newaddress)
{
.....
}
GiveAddress(char* address)
{
....
}SetAddress方法是否应该将新地址的内容复制到他的地址属性中并将其保存到数据库中,还是应该只更新他的地址属性?GiveAddress应该返回地址变量,还是应该从数据库中检索它?
我认为这个代表员工的ADT不应该关心内部数据库(这不是你要求员工的事情),所以将他的数据保存到数据库中应该由系统的特殊处理程序或用户界面在此ADT之外执行。
发布于 2015-04-20 00:22:25
我不确定将员工定义为ADT是否会给您带来很大的实际好处。我可能错了,但我习惯于将ADT视为数据结构,而不是特定于业务的实体的定义。
除了这个评论,在我看来,你的逻辑是绝对正确的。ADT应该是关于操作、值和约束的,在我看来,它应该与持久性无关。如何将类型存储为一个整体与它无关,我也不会将其与数据库耦合。
https://stackoverflow.com/questions/29731617
复制相似问题