如何在我的世界职业战争?

山欣诺山欣诺最佳答案最佳答案

我们大家都是经受过9年义务教育的人,应该知道一个事实,那就是我们中国的教育部在2004年的时候,就已经把计算机基础课程调整到了高中阶段;并且从2008年开始,全国所有的高中阶段教育学校都必须开设计算机课程。我们再来仔细想想,自从我们读中学开始,也就是12岁左右的年纪开始,我们就使用Windows操作系统了;而到了我们读大学或已经工作之后,我们就再也没有接触DOS系统的机会了。既然我们现在都在使用Windows操作系统,那么我们就来聊聊基于MVC设计模式的C#与基于WPF技术的Windows应用程序(也就是“窗体应用程序”),两者的区别是怎么样的?有什么相同与不同之处?

程序的启动方式不同:

C#中的MVC设计模式(此处的C#自然指的是.NET Framework平台上的C#,而非Apple公司的iOS平台上的Swift或是谷歌公司的Android平台上所使用的C++),它使用的是控制器(Controller)作为中间层,负责模型(Model)与视图(View)的交互;控制器只会简单的把用户的操作转化成一些指令,并通过Model层来实时的变更View层的状态。

而传统的Windows窗体应用程序,也就是没有使用MVC设计模式的程序,它的启动方式是当操作系统接收到该程序的启动命令后,会直接将该程序的所有控件显现在屏幕上;也就是窗口,并将线程指针(ThreadHandle)交给应用程序的入口点(Main)进行初始化,之后该线程会继续执行后续的代码。

交互方式不同:

C#中的MVC设计模式,它的交互方式非常简便,因为其采用的是命令式的交互方式,也就是说,当你在命令行中打入指令后,程序便会根据你输入的指令行产生符合逻辑的响应;也就是说,一个简单的“Hello,World!”指令,便可以在C#中使用Switch语句来编写多个分支来完成。

传统的Windows窗体应用程序的交互方式都是采用事件驱动模式来进行;也就是当控件的发生事件时,会触发相应的“事件”,并在应用程序的“事件处理函数”(EventHandler)中进行具体的动作。

两者的相同之处

由于C#中的MVC设计模式是基于操作系统级的中立性(即跨平台的可移植性)需求而设计的,所以该模型自然能够保证应用程序的健壮性;与此同时,由于将业务逻辑与表现逻辑完全分离开来,自然能够让不同的团队负责不同的部分;实现软件的模块化,提升软件的复用性,并且还因为将业务逻辑与表现逻辑切分独立开来,使得调试与维护该应用程序变得更加简单。

而传统Windows窗体应用程序,它在执行任务时,需要用户的直接参与;而所谓直接参与,便是当用户单击窗口上的按钮后,或是在文本编辑控件中打了字之后,才会触发具体的行为。

我来回答
请发表正能量的言论,文明评论!