具有更严格输入标准的子类的替代方法


Alternative approach to subclasses with stricter input criteria

我有一个Entity类和一个派生的Item类,其中包含一些额外的东西。我正在努力创造一些东西,我可以修补这样的对象(即应用困难到他们)。我目前拥有的是一个EntityPatcher类,它将实体对象转换为关联数组,然后将其提供给通用补丁实用程序(使用组合)。这对于Entity对象非常有效,但是对于Item对象,需要考虑一些额外的字段。我开始做的是创建一个派生ItemPatcher类,它包含一些额外的东西。但是,这个类只能处理Items,从而缩小了patch方法接受的范围。我想这很糟糕,因为它违反了李斯科夫代换。我不确定什么是更好的方法,因此我正在寻找替代解决方案的建议或指针。

EntityPatcher: http://pastebin.com/CYa3ehH4

ItemPatcher: http://pastebin.com/3BReBZGH

听起来你想要应用适配器模式。

http://en.wikipedia.org/wiki/Adapter_pattern