当一个类型可以是两个不同的东西之一时的设计选项

时间:2015-05-05 03:26:38

标签: c# oop design-patterns

假设我有一个客户类型,并且我想为所有客户存储某些信息。但是,客户可以是个人和组织。在每种情况下,我都希望在它们上存储不同类型的信息,并且能够以不同的方式对它们进行操作。

我通常只想处理Customer对象,但在某些时候根据情况处理更具体的类型(例如,在创建地址时我想使用Person的Surname和GivenNames,但是,对于组织,TradingName(但它没有填充OrgName)。

我对如何处理这件事感到很难受。我在搜索时发现的示例/问题假设更具体的类型具有相同的属性/方法,因此可以进行一般处理。

我是否只在Customer对象中有一个字段和一个标志来指示哪个类型有值(即isPerson())并在我需要时在我的代码中检查。我是否使用继承,何时需要使用IsType()类型的逻辑?或者是否有一些缺少的设计模式可以帮助解决这种情况?

0 个答案:

没有答案