gpt4 book ai didi

c# - 如何避免 GUI 控件和域对象之间的并行继承层次结构

转载 作者:行者123 更新时间:2023-11-30 17:23:25 26 4
gpt4 key购买 nike

我正在使用 C# 开发 Windows 窗体应用程序。我正在使用 MVP 设计模式。在 GUI 中,用户可以操作打印机对象,并且需要有向用户表示打印机对象的自定义控件。

有一个代表打印机的类层次结构。在基础上有一个抽象的 Printer 类。然后是一个抽象的 InkJetPrinter 类和一个抽象的 LaserPrinter 类,它们都继承自 Printer。具体类代表打印机的不同品牌和型号,并继承自 InkJetPrinter 或 LaserPrinter。

GUI 中表示打印机的每个 UserControl 类都需要具有特定于打印机类型的特性和功能。例如,喷墨打印机可能有一个显示墨水量的显示屏,某些型号的激光打印机可能有一些特殊功能,可以通过控件上的附加按钮访问,等等。

我认为没有比让 UserControl 类的继承层次与 Printer 类的继承层次平行的更好的处理方法了。有没有更好的方法?

最佳答案

在此设计中,您可能需要 LaserPrinterControl 和 InkJetPrinterControl,但它们不需要派生自 PrinterControl。例如,您可以同时提供一个“PrinterControl”子控件。

缺点是胶水代码多一点,但优点是您可以完全控制 PrinterControl 的行为。

关于c# - 如何避免 GUI 控件和域对象之间的并行继承层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2218172/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com