1

我有一个设计问题。当编写一个应用程序时,其中有几个组件共享某些属性,而其他组件在 GUI(Windows 窗体)和后端方面都不同,理论上如何解决这个问题?

例如,我有一个应用程序,其中有 4 种不同类型的产品。输入产品详细信息的表格都共享 3 个不同的字段。到目前为止,很容易 - 有一个基类,然后从这个基类派生 4 种形式。但是,比如说,2 种产品共享某种行为,这对它们来说都是相同的。当然,我可以有一个定义方法的接口,然后让这2个产品入口表单实现这个接口,但是由于接口没有提供默认实现,这样做岂不是很浪费?因为我必须在每个类中提供一个实现,如果它完全相同,那就是代码重复。

我当然可以将此方法放在基类中,并从中派生出 2 种形式。如果我的表单共享多个共同元素而不共享其他元素,那么在不必扯掉我的头发的情况下,最理智、最合乎逻辑的方式是什么?

4

3 回答 3

2

为什么不让 2 个不相关的类直接从您的基类派生,然后创建一个具有通用功能的新类,并从基类派生,让其余两个类从该新类继承?

BaseClass
CommonClass : BaseClass
ClassA : BaseClass
ClassB : BaseClass
ClassC : CommonClass
ClassD : CommonClass
于 2009-05-21T22:08:14.390 回答
0

将公共行为放入两个类的一种方法是让两个类包含该行为作为成员,而不是继承该行为:对于表单,这可能意味着定义一个“用户控件”(即可重用的公共控件集合)。

于 2009-05-21T21:34:01.777 回答
0

没有任何特定的布局很难说。通常,另一种更灵活的重用形式是组合而不是继承。事实上,控制层次结构显示了组合的强大程度。也许您可以将 UI 的各个部分分离为自定义控件,这些控件根据您所追求的特定产品布局进行组装

于 2009-05-21T21:35:22.630 回答