我正在使用MVP模式开发大规模应用程序.在开发过程中,我提出了是否应该使用组合或继承的问题.例如:让我们假设我有一个名为形式美孚与场一个和乙.在本申请的另一部分我有一个表格栏具有相同字段阿和乙但附加字段Ç.
目前,代码是使用继承方法编写的,其中表单Bar从表单Foo继承.然后,演示者处理与模型略有不同的数据.这很简单,但是如果遵循"是A"的经验法则,是否打败我,因为即使表格不同,它们也处理公共输入(A和B).
然而,在这里我一直在考虑"继承的构成"和Liskov替换原则,并认为我应该使用组合而不是继承.然而,因为我使用的是MVP,所以它比预期的要复杂得多,因为我必须有一个表格Foo的演示者,字段A和B,然后是一个带有字段C的Bar的演示者,以及对Foo的演示者的引用,以便它可以将字段A和B注入其中.
问题是它已被证明是更多的代码,因为我必须在Foo的演示者中添加一些排序getter和setter,以便能够将数据传递给Bar.如果我打破MVP以提供作曲,这感觉就像某种程度.
所以我的问题是:
对于我的情况,使用组合而不是继承是否真的更好?为什么?
使用组合"打破"MVP?