Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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
.net 如何使此应用程序可重用?_.net_Oop_Architecture_Code Reuse - Fatal编程技术网

.net 如何使此应用程序可重用?

.net 如何使此应用程序可重用?,.net,oop,architecture,code-reuse,.net,Oop,Architecture,Code Reuse,我制作了一个.NETWindows表单,允许用户查看特定文档并签名 我想让它在未来的应用中重复使用 挑战是: 要签名的文本需要参数 在用户签名之前,文本只是一个查询,而不是保存在任何地方 当用户签名时,必须存储并“冻结”他/她签名的文本。在将来执行查询时,数据可能会更改 不同的文档可能有不同的数据源和不同的参数。但签名时,它们都应保存在同一个表中 我只能考虑为每个文档创建一个新类,并使用相同的基本功能从同一个类继承。有更好的方法吗?根据参数,我可以加载不同的数据源和模板吗 我认为您可以选择MVC

我制作了一个.NETWindows表单,允许用户查看特定文档并签名

我想让它在未来的应用中重复使用

挑战是:

  • 要签名的文本需要参数
  • 在用户签名之前,文本只是一个查询,而不是保存在任何地方
  • 当用户签名时,必须存储并“冻结”他/她签名的文本。在将来执行查询时,数据可能会更改
  • 不同的文档可能有不同的数据源和不同的参数。但签名时,它们都应保存在同一个表中

  • 我只能考虑为每个文档创建一个新类,并使用相同的基本功能从同一个类继承。有更好的方法吗?根据参数,我可以加载不同的数据源和模板吗

    我认为您可以选择MVC模型视图控制器或MVP模式。因此,您可以将规则(挑战)保留在控制层中。这有助于将其他视图(窗口)添加到现有控制器或交换机数据模型


    –view–controller

    将表单转换为控件,打包到自己的程序集(可能是Windows表单控件库)中,这样它就可以重用

    然后将尽可能多的非UI特定代码保存在单独的类库中;这将允许进一步重用-用于不同的UI,如WPF自定义控件库

    就代码的结构而言,MVC(正如Arseny所指出的)绝对是一种选择


    充分利用接口,使其易于与集成。

    当您说“已签名”时,您是指加密还是其他内容?都是来自Tablet PC和RSA-PSS的实际签名。+1感谢您的回复。如果有其他建议,我将等待。