MVC模式的基本原理
在MVC设计模式中:
C代表Controller,负责用户界面和业务逻辑层的通信控制,一方面解释来自用户界面的输入,识别用户动作(如点击按钮等),调用相应Model中的方法,另一方面处理来自Model的事件和返回的执行结果,调用适当的View显示给用户,Controller主要由Servlet完成。
M代表Model,负责整个解决方案的业务逻辑实现,底层的数据库也由Model访问和操作;
V代表View,负责系统向用户的展示,主要由HTML及JSP等完成;
mvc模式的原理
胡乱讲一下
MVC说到底,底层还是servlet。
以登录为例,首先会有页面,会有action,会有登录对象。这个页面就是所谓的V(view,视图),action一般都被视为C(controler,控制器),最后就是各种各样的对象M(module,模型)。
SSH是MVC开发中最被人认知的,但不能说是最好的。
Struts2可以说是一个跨VC的框架,因为他负责页面的跳转和逻辑分析。它能够帮助我们方便快捷地完成这两部分的开发。
Spring,如果你不太了解的话,像我一样,那么你就可以这么理解。一个服务(一般是一个接口),可能会有好多种实现,但是我们为了达到一个目的,只能用其中的一个实现,那么这时的做法是new一个新的对象,而这个对象是一个接口类型,这个对象实际是一个接口的实现。Spring的好处就是让我们方便地管理这些实现,一般这是基于配置文件的。
Hibernate,这个是与数据库底层相关的,它与Module有很大的对应关系。
Dao,data access object,数据访问对象,他们是接口,就是把所有的logic接口放在这里。
Service,也是接口,不过这个接口的概念是基于页面的动作的,例如我想登录,会有一个Service,但是这个service会涉及好多的logic(包括用户状态获取,用户权限获取,用户信息获取),所以说service跟logic的对应关系是一对多的关系。
model,这个更加随意一下,一般都是对应着数据库中表的结构,例如用户表,会对应一个User类等。
最后就是javabean了,其实javabean的定义很广泛的。
我简单就我的理解给你介绍一下,formbean就是所谓的页面Form对象对应着的java端的对象,简单的说就是页面有一个name,formBean中就有一个name属性或者是一个与name相关的属性。另外一个种就是广义上的javabean,为了达到某一个目的而设立的一个java类都可以成为一个javabean,它可以包含方法跟属性。
另外一点建议,如果想研究细一点,先不要看这些框架先看servlet,慢慢的就会明白这么划分目录结构的好处了。把它们放到一个包中,也是未尝不可的,但是乱!
-mvc模式的工作原理
MVC 模式的原理,它在 Android 中是如何运用的
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。
在Android开发中,比较流行的开发框架模式采用的是MVC框架模式,采用MVC模式的好处是便于UI界面部分的显示和业务逻辑,数据处理分开。那么Android项目中哪些代码来充当M,V,C角色呢?
M层:适合做一些业务逻辑处理,比如数据库存取操作,网络操作,复杂的算法,耗时的任务等都在model层处理。这个和JavaEE不太一样,javaee中model层一般只有模型,而复杂的操作一般放在业务(service)层中。
V层:应用层中处理数据显示的部分,XML布局可以视为V层,显示Model层的数据结果。
C层:在Android中,Activity处理用户交互问题,因此可以认为Activity是控制器,Activity读取V视图层的数据(eg.读取当前EditText控件的数据),控制用户输入(eg.EditText控件数据的输入),并向Model发送数据请求(eg.发起网络请求等)。
-mvc模式的工作原理