如果类型是输入,则该文档有一个发送者。发送者可以是两种类型之一:个人或公司。
如果类型是输出,则该文档有一个接收者。接收者可以是三种类型之一:个人、公司或部门。
我不确定使用具有枚举的属性来表示文档类型还是使用基类文档层次结构和每种文档类型的两个类更好。
对于发送者和接收者,我不确定是否使用基类层次结构是一个好选择,因为这三种类型没有任何共同点(个人、公司、部门),如何避免无效的发送者。
如果您可以告诉我如何建模文档类,或者告诉我应该使用哪些设计模式,那将很好。
谢谢。
“输入”和“输出”之间只有几个不同之处,相同字段除了发送者和接收者。此外,行为相同但有些微小变化。
发送者和接收者没有特定行为,它们所要做的仅仅是包含正确的对象。例如,发送者可以包含个人或公司,但不能包含部门,因为部门不是有效的发送者。另外,如果发送者包含一个人,则不能再包含公司,因为只有一个发送者被接受。
主要问题是如何在获取文档并阅读数据时读取发送者或接收者的信息。例如,如果我需要读取发送者,并使用包含发送者类型的枚举,则必须编写类似这样的代码:如果发送者==个人,则读取个人并将其分配给个人,否则读取公司并将其分配给公司。如果使用继承,我如何避免使用Cast或如何知道发送者是人还是公司而不需要太多代码或Cast?再次感谢。