无需单独 class 即可保持向后兼容性
preserve backward compatibility without a separate class
假设有一个名为 Animal
的 class,它接收到包含动物属性(type
、color
、size
)的请求,然后它序列化并将其存储在数据库中。随着时间的推移,动物的特性会发生变化。添加了一些内容,现在我们还有 location
。
将有一个版本标志,可用于随时分支请求。
您如何调整动物 class 使其既能处理新请求又能处理旧请求?这有什么设计模式吗?
我认为您不需要特定的设计模式来实现这一点。您可以尝试以下两种方法并评估哪一种更适合您的情况:
有时您无法使某些东西向后兼容,这取决于您的域逻辑(规则)。
如果像 "location" 这样的新 属性 有一些默认值并且您对此没有问题,那么您可以处理旧请求,但如果您的应用需要该值才能正常工作,那么旧的请求将无效。
假设有一个名为 Animal
的 class,它接收到包含动物属性(type
、color
、size
)的请求,然后它序列化并将其存储在数据库中。随着时间的推移,动物的特性会发生变化。添加了一些内容,现在我们还有 location
。
将有一个版本标志,可用于随时分支请求。
您如何调整动物 class 使其既能处理新请求又能处理旧请求?这有什么设计模式吗?
我认为您不需要特定的设计模式来实现这一点。您可以尝试以下两种方法并评估哪一种更适合您的情况:
有时您无法使某些东西向后兼容,这取决于您的域逻辑(规则)。
如果像 "location" 这样的新 属性 有一些默认值并且您对此没有问题,那么您可以处理旧请求,但如果您的应用需要该值才能正常工作,那么旧的请求将无效。