复杂软件中的所有控件都应该继承自自己编写的接口吗?
本文关键字:自己 接口 继承 软件 控件 复杂 | 更新日期: 2023-09-27 18:03:46
为一个复杂的软件(用c#/wpf编写)中应该使用的大多数控件创建一个接口是一个好主意吗?目前我们的问题是,我们使用来自微软和一些第三方公司的控件。我们的问题是,如果我们想改变一些第三方组件,我们不想改变整个软件,因为我们为客户做了很多定制。
所以这是一个好主意,为我们使用的每个控件创建一个抽象类,只使用抽象类/接口提供的成员?
也许出于某些原因,这是一个糟糕的解决方案,我不明白。
谢谢!
这是一个非常深刻的问题,但我会尽量给你一个答复。
我首先要说的是,将表示逻辑与UI控件分开是非常好的。一般来说,您应该查看从MVP派生的设计模式或使用当前趋势模式,即Martin Fowler发明的所谓"表示模型"。
我强烈建议阅读关于软件设计和最佳实践的所有信息。一个好的开始是阅读这里的所有内容:http://martinfowler.com/eaaDev/OrganizingPresentations.html
从我的经验来看,分离UI和表示逻辑的最大好处不是改变UI技术,而是让你可以自由地测试你的表示逻辑。在我的整个职业生涯中,我从未换过其他UI控件提供商。
所以,记住可测试性而不是改变UI技术。
说到模式,在WPF中(你说你使用WPF)已经使用了一种表示逻辑模式=>所谓的MVVM,它不是什么花哨的东西,而是旧的表示模型的重新命名。
关于你如何看待你的问题…您所描述的方法与"模型-视图-呈现者"模式更相关,更确切地说,是被动视图子模式,其中控件使用接口抽象为表示逻辑。状态呈现在UI中,逻辑呈现在呈现者中。这与Presentation Model模式相反,在Presentation Model模式中,状态在Presentation中,逻辑也在Presentation中。我认为你不应该在你的应用程序中制作鸡尾酒表示模式,我的建议是:让MVVM作为你的基本模式,并尝试正确使用它。这种模式将增强可测试性,我认为在您的情况下,您不需要更改UI技术。但即使你要改变它,如果你在MVVM模式上正确编码,改变将是可行的。