插件架构,设计困境

时间:2011-06-25 13:41:27

标签: wpf inheritance architecture dependencies

这是我的问题,

我有几个音频插件,它们都继承自 Filter 基类。现在我期待为他们创建一个UI,以便用户可以选择/配置它们。

我坚持的是关于实现插件属性。

当我将它们设置为 FilterParameter 类型时,对于(double或float类型),通过独特的DataTemplate创建UI比为每个插件类型创建DataTemplate要容易得多。

FilterParameter 类是我创建的类型,其中包含 Description,Min,Max,Value 成员;这是一个实时节省,但在重构我的设计(使用VS依赖图)时,我发现它为插件类型创建了很多依赖项。虽然我现在对继承层次结构感到满意,但这些关系Plugin< - > FilterParameter再次弄脏了我的图表。

在这种情况下你会做什么?

走硬路径,保留属性的简单类型,并为每种类型提供专用的DataTemplate?

或者继续保持一般情绪,考虑上述方法的优缺点?

谢谢!!! : - )

1 个答案:

答案 0 :(得分:0)

取决于。

如果通用完成了工作,并且有其他设计约束或驱动程序支持这种方法,那么我可能会坚持这一点。

但是如果保持通用性,或者在狭窄/严格定义的范围内开始限制我在功能上可以做的事情,或者开始扭曲系统的其他方面,那么它绝对是走硬路径的时候了。现在小疼痛,以后疼痛减轻(较大)。