Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.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#Winforms,MVP架构_C#_Winforms - Fatal编程技术网

C#Winforms,MVP架构

C#Winforms,MVP架构,c#,winforms,C#,Winforms,嘿,peeps:-)(…对不起,这有点长) 我正在使用C#Winforms和MVP模式开发一个应用程序, 它只是一个相对简单的应用程序——虽然它正在做大量的事情,所以我认为MVP模式在组织代码方面是一个很大的帮助。 在WinForm启动之前,我已经在Program类中创建了一个要使用的模型实例——一个静态实例。(模型类不是静态类) 然后我创建主窗体(视图),它创建对其演示者的引用。 (视图/演示者类都是非静态的) 我在静态实例背后的推理是允许整个应用程序访问相同的模型信息。然后,当应用程序关闭时

嘿,peeps:-)(…对不起,这有点长)

我正在使用C#Winforms和MVP模式开发一个应用程序, 它只是一个相对简单的应用程序——虽然它正在做大量的事情,所以我认为MVP模式在组织代码方面是一个很大的帮助。 在WinForm启动之前,我已经在Program类中创建了一个要使用的模型实例——一个静态实例。(模型类不是静态类)

然后我创建主窗体(视图),它创建对其演示者的引用。 (视图/演示者类都是非静态的)

我在静态实例背后的推理是允许整个应用程序访问相同的模型信息。然后,当应用程序关闭时,我可以从程序类访问最新的模型数据,并保存任何需要持久化的内容。这很好,因为它将所有的加载/保存保持在一个地方

在任何情况下,每个模型类都只会有一个实例,没有DB连接,您拥有什么

从我所知道的,在任何时候,只有一件事需要访问任何模型

我确实有“BackgroundWorker”线程在做各种事情,但我没有引用这些线程中的任何模型。我将数据的值从模型传递到线程。然后,线程传回信息,如果需要,这些信息将通过主线程传播到相关模型

我只是认为创建静态的模型实例是一种更简洁的方法,然后永远传递引用…(你知道,将一个引用传递给主窗体,然后再传递给另一个窗体等等)

这样,视图中的代码看起来就像:


//这=对视图的引用

PresenterA p=新PresenterA(此,Program.ModelA); ...

(显然,类名不仅仅是PresenterA、ModelA等,这是相当愚蠢的)

现在,我很确定有人会对我大喊大叫,告诉我这是一种可怕的做事方式

如果是这样的话,请那些反对的人现在发言,或者永远保持沉默

短暂性脑缺血发作

(顺便说一句,我只是个书呆子,我不是为了谋生而开发c#,这是一种爱好)


:-)

我会使用一个框架,比如。

有关指向给定选项的大量指针,请参阅


也考虑使用避免静态类

谢谢链接,我会浏览它们。我以前看过一些网站。顺便说一句,我没有静态类,我有一个静态实例到一个类-但依赖注入看起来很有趣,所以我们将研究它。。。谢谢:)