假设我有一个客户类型,并且我想为所有客户存储某些信息。但是,客户可以是个人和组织。在每种情况下,我都希望在它们上存储不同类型的信息,并且能够以不同的方式对它们进行操作。
我通常只想处理Customer对象,但在某些时候根据情况处理更具体的类型(例如,在创建地址时我想使用Person的Surname和GivenNames,但是,对于组织,TradingName(但它没有填充OrgName)。
我对如何处理这件事感到很难受。我在搜索时发现的示例/问题假设更具体的类型具有相同的属性/方法,因此可以进行一般处理。
我是否只在Customer对象中有一个字段和一个标志来指示哪个类型有值(即isPerson())并在我需要时在我的代码中检查。我是否使用继承,何时需要使用IsType()类型的逻辑?或者是否有一些缺少的设计模式可以帮助解决这种情况?