java之开发模式

来源:互联网 发布:文明6金钱修改器 mac 编辑:程序博客网 时间:2024/06/06 09:21
javabean:
1.什么是Javabean?
JavaBean是一种开发规范,可以说是一种技术。
JavaBean就是一个普通的java类。只有符合以下规定才能称之为javabean:
1)必须提供无参数的构造方法
2)类中属性都必须私有化(private)
3)该类提供公开的getter 和 setter方法
2.Javabean的作用:
用于封装数据,保存数据。
访问javabean只能使用getter和setter方法
3.JavaBean的使用场景:
1)项目中用到实体对象(entity)符合javabean规范
2)EL表达式访问对象属性。${student.name}  调用getName()方法,符合javabean规范。
3)jsp标签中的属性赋值。 setNum(Integer num)。符合javabean规范。
4)jsp页面中使用javabean。符合javabean规范

web开发模式
mVC
MVC全名是Model View Controller, 是模型(model)-视图(view)-控制器(controller)的缩写,它用一种将业务逻辑、数据、界面显示分离的方法组织代码,
将业务逻辑聚 集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。将系统进行MVC分层的核心思路就是分离组件,
降低组件耦合性,组 件独立演化
Model层:Model指模型部分,一般在应用中Model层包括业务处理层和数据访问层。数据访问层主要是对数据库的一些操作的封装。业务处理层应用JavaBean构建,
JavaBean主要是用作将从View层获取的数据和数据库的数据进行桥接。除却JavaBean以外,若想构建分布式应用系统,可以应用EJB组件进行业务逻辑层的构建
View层:View指视图部分,这一部分的内容是展示给用户实际进行交互的,通常使用JSP和HTML进行构建(个人比较喜欢以HTML嵌入JSP的方式来构建网页)
Controller层:Controller指控制部分,一般是对View层提交的请求为其设置对应的Servlet(Action)进行特定功能的处理

                mvc的交互过程图:
                
mvc的优点
耦合性低,重用性高,应对每个组件的变化性好,便于开发,测试与维护。
mvc的缺点
(1)增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,
会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率
(2)视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,
视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用
(3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。
对未变化数据的不必要的频繁访问,也将损害操作性能
(4) 目前,一般高级的界面工具或构造器不支持MVC模式。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难。
        MVP 
           MVP的全称为Model-View-Presenter,Model提供数据,View负责显示,Presenter负责逻辑的处理。MVP与MVC有着一个重 大的区别:在MVP中View并不直接使用Model,
它们之间的通信是通过Presenter来进行的,所有的交互都发生在Presenter内部,而 在MVC中View会直接从Model中读取数据而不是通过Controller。
Model层:Model只负责处理最终数据,负责数据的检索,持久化等操作。
View层:负责UI的绘制和用户的交互,显示数据
presenter层:作为Model和View的中间协调部分,负责两者之间的业务逻辑处理,Presenter与具体的View和Model是没有直接关联的,而是通过定义好的接口进行交互,
从而使得在变更View或者Model具体实现的时候可以保持Presenter的不变,这样就实现了业务逻辑的重用。

mvp的交互过程图:
                    
mvp的优点:
1)View和Model之间的耦合度降低,使其更关注自身业务逻辑,结构清晰,维护方便;
2)便于单元测试;
3)代码复用率提高;
4)代码框架更适用于快速迭代开发
mvp的缺点:
1)造成类数量爆炸,代码复杂度和学习成本高,在某些场景下presenter的复用会产生接口冗余
2)由于Presenter可以反作用于View,这 样View的渲染有可能就放在了Presenter中,所以View和Presenter的交互会过于频繁
mvvm:
MVVM全称Model-View-ViewModel,Model提供数据,View负责显示,这个还和MVP一样,
这个模式的重点就是ViewModel的部分,它通过双向绑定(松耦合)解决了MVP中Presenter与View联系比较紧密的问题。
Model层:Model只负责处理最终数据,负责数据的检索,持久化等操作
View层:负责UI的绘制和用户的交互,显示数据
ViewModel层:ViewModel作为View的数据映射,通常View上有什么属性,ViewModel上也会存在相应的一个属性, 这两个属性通过事件实现了双向的绑定,
常见的MVVM框架都替我们完成了这样的绑定过程。 
                
                mvvm的交互过程图:
                         
mvvm的优点:
1.低耦合:view/viewController可以独立于Model而进行变化和修改,与此同时,一个viewModel可以绑定到不同的view/ViewController上
2.独立开发:通过MVVM,开发人员可以专注于逻辑开发在viewModel里面,而设计人员也可以专注于页面设计。
3.易于测试
4.View的功能进一步的强化,具有控制的部分功能
5.双向绑定技术,当Model变化时,View-Model会自动更新,View也会自动变化
mvvm的缺点:
1)数据绑定使得 Bug 很难被调试。你看到界面异常了,有可能是你 View 的代码有 Bug,也可能是 Model 的代码有问题。数据绑定使得一个位置的 Bug 被快速传递到别的位置,
要定位原始出问题的地方就变得不那么容易了。
2)对于过大的项目,数据绑定需要花费更多的内存,一个大的模块中,model也会很大,虽然使用方便了也很容易保证了数据的一致性,当时长期持有,不释放内存,就造成了花费更多的内存
3)数据双向绑定不利于代码重用。客户端开发最常用的重用是View,但是数据双向绑定技术,让你在一个View都绑定了一个model,不同模块的model都不同。那就不能简单重用View了。

mvc、mvp.mvvm三者之间的区别?
1)MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。作为一种新的模式,
MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,
而在MVC中View会从直接Model中读取数据而不是通过 Controller。
2)在MVC里,View是可以直接访问Model的!从而,View里会包含Model信息,不可避免的还要包括一些业务逻辑。 在MVC模型里,更关注的Model的不变,而同时有多个对Model的不同显示,及View。
所以,在MVC模型里,Model不依赖于View,但是View是依赖于Model的。不仅如此,因为有一些业务逻辑在View里实现了,导致要更改View也是比较困难的,至少那些业务逻辑是无法重用的。
2)mvvm中,则使用双向绑定技术,view的功能进一步强化

备注:本文内容是根据网上各家所长整理出来的!
           图片来源于http://www.cnblogs.com/dxy1982/p/3793895.html
原创粉丝点击