我有一个 Entity 类和一个包含一些额外内容的派生 Item 类。我正在努力创建一些东西,我可以用它来修补这些对象(即对它们应用差异)。我目前拥有的是一个 EntityPatcher 类,它将 Entity 对象转换为关联数组,然后将其提供给通用修补实用程序(使用组合)。这对 Entity 对象非常有效,但对于 Item 对象,需要考虑一些额外的字段。我开始做的是创建一个包含一些额外内容的派生 ItemPatcher 类。不过,此类只能与 Items 一起使用,从而缩小了 patch 方法接受的范围。我猜这很糟糕,因为它违反了 liskov 替换。不过,我不确定什么是更好的方法,因此我正在寻找替代解决方案的建议或指示。
EntityPatcher:http://pastebin.com/CYa3ehH4
ItemPatcher:http://pastebin.com/3BReBZGH
最佳答案
在我看来,您可能想要应用 adapter pattern .
关于php - 具有更严格输入标准的子类的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13992507/