Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用接口、基类、自定义类和用户界面的C#Web应用程序的最佳方法体系结构_C#_Asp.net_Architecture_Web - Fatal编程技术网

使用接口、基类、自定义类和用户界面的C#Web应用程序的最佳方法体系结构

使用接口、基类、自定义类和用户界面的C#Web应用程序的最佳方法体系结构,c#,asp.net,architecture,web,C#,Asp.net,Architecture,Web,我正在C#.net 4.0中构建一个应用程序,该应用程序与多家制造商的硬件设备进行交互,我正在寻找关于以下问题最佳解决方案的建议 首先,我有一个通用接口IHardware,它具有应用程序将与之交互的所有不同品牌硬件所共有的属性 其次,我将IHardware实现为一个名为HardwareController的通用类。 现在我支持三个品牌的硬件设备,每个品牌都有额外的字段和与设备交互的不同API 我打算为每个品牌实现一个单独的控制器类,该类继承了HardwarController类的通用功能 解决这

我正在C#.net 4.0中构建一个应用程序,该应用程序与多家制造商的硬件设备进行交互,我正在寻找关于以下问题最佳解决方案的建议

首先,我有一个通用接口IHardware,它具有应用程序将与之交互的所有不同品牌硬件所共有的属性

其次,我将IHardware实现为一个名为HardwareController的通用类。 现在我支持三个品牌的硬件设备,每个品牌都有额外的字段和与设备交互的不同API

我打算为每个品牌实现一个单独的控制器类,该类继承了HardwarController类的通用功能

解决这个问题的最佳方法是什么

在此基础上,我有一个通用的Asp.net硬件用户控件,它在加载事件上实例化一个HardwareController类,并将该类绑定到接口。这允许用户远程修改硬件的属性,并将其保留回设备

我不确定如何实现特定于品牌的用户控件、它们的保存行为和附加字段,同时尽可能重用通用硬件控制器和用户控件

任何建议将不胜感激,因为我必须在一周内完成这项工作

谢谢
Colm

您可以这样做:

  • 所有设备的通用接口:IHardware
  • 所有品牌的通用基类相同
  • 一个品牌基类,适用于品牌内的所有设备,继承自公共基类
  • 设备类继承自品牌基类

听起来你需要一个硬件控制工厂。我不确定这个问题是否真的适合……嗨,克里斯,我对工厂模式不太熟悉,你能详细介绍一下吗。我现在要去研究一下。谢谢你,沃尔特。你能建议哪里更合适吗?thanks@ColmOConnell,我想程序员会更适合回答这样的问题。StackOverflow,至少从我听到/看到/想到的来看,更倾向于实际代码。另一方面,程序员更关注编程模式、架构决策等。感谢设拉子,我实现了你的建议,它对我来说运行得很好。非常感谢。