我设计了一个应用程序,它有一个接口和两个继承的类:
interface IPerson {}
class Man:IPerson{}
class Woman:IPerson{}
现在,我编写了一个如下所示的方法:
public IPerson GetPeron(int idNumber);
此方法获取一个 ID 号并在 DB 中查找该号码。如果该号码属于一个人,则会创建一个新的 Man 实例,将数据库中的数据放入新实例中,最后实例返回。如果给定的 ID 属于女性,情况也是如此
现在我希望该方法不是放在客户端,而是放在 WCF 服务器上。问题是返回类型不能再是接口了。
显而易见的解决方案是创建三个方法:
A. 获取一个 ID 并返回一个代表人员类型的枚举:
enum PersonType { Man,Woman }
PersonType GetType(int personID);
B. 获取一个 ID 并返回一个 Man:
Man GetMan(int personID);
C. 获取一个 ID 并返回一个女人:
Woman GetWoman(int personID);
我觉得这很糟糕,有更好的建议吗?