首先抱歉我的英语不好 :D 最近由于软件工程考试,我正在更深入地学习设计模式,我必须设计一个软件系统作为这次考试的项目。
有一个我无法处理的问题:如何将实体类(代表我的应用程序域的数据)与……其他一切分离!
我的意思是,更具体地说,如果我有一个类 Patient(具有自己的私有属性和公共 getter 和 setter 方法),这是一个实体类,我认为到目前为止我做对了:D
所以假设我选择使用 MVC 模式架构来设计我的程序,Patient 类将在 Model 中,对吗?
现在,每个处理该类的视图都会引用它:假设我有三个视图:第一个视图查看所有患者,另一个用于修改患者,最后一个用于注册新患者(实际上还有其他课程我应该提交一些报告,但我认为现在这无关紧要)。
这些类中的每一个都将知道 Patient 的结构以显示其数据,例如,它们将调用其 getter 方法并以某种方式显示数据。
我认为没有办法避免这种情况,因为视图在语义上与它必须显示的数据(=模型)相关联:我的意思是它必须知道数据是字符串、日期还是整数,并且它还必须知道它的语义(它在现实世界中代表什么);所以我认为仅仅删除对 Patient 类的引用没有多大意义。
现在问题的核心是:如何防止 Patient 类中的更改传播到使用它的所有类(不仅仅是视图)?
我的意思是:假设 String[] Cellular 中的属性 String Cellular 发生了变化,因为需求发生了变化。我将不得不修改:1)数据库/数据库接口 2)患者类 3)(最糟糕的是)每个使用患者的类!
如何避免这种情况?我认为在一个好的项目中,单个类的更改不应传播到使用该类的所有模块的更改链中,但我是初学者,我想不出一种方法来防止这种情况发生。
我什至想不出一种为实体类使用稳定接口的好方法,因为需求的变化会反映接口的变化(而且我不认为接口应该被改变!)。
请帮忙!!