我正在用 C# 开发 Windows 窗体应用程序。我正在使用 MVP 设计模式。在 GUI 中,用户可以操作打印机对象,并且需要有自定义控件来向用户表示打印机对象。
有一个代表打印机的类层次结构。底层有一个抽象 Printer 类。然后是一个抽象的 InkJetPrinter 类和一个抽象的 LaserPrinter 类,每个类都继承自 Printer。具体类代表打印机的不同品牌和型号,并继承自 InkJetPrinter 或 LaserPrinter。
GUI 中代表打印机的每个 UserControl 类都需要具有特定于打印机类型的特性和功能。例如,喷墨打印机可能有一个显示墨水量的显示屏,某种型号的激光打印机可能有可以通过控制器上的附加按钮访问的特殊功能,等等。
我没有看到比使 UserControl 类的继承层次结构与 Printer 类的继承层次结构并行的更好的处理方法。有更好的方法吗?
在此设计中,您可能需要 LaserPrinterControl 和 InkJetPrinterControl,但它们不需要从 PrinterControl 派生。例如,您可以同时指定一个“PrinterControl”子控件。
缺点是粘合代码较多,但优点是您可以完全控制 PrinterControl 的行为。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)