六、Web架构设计

2022-01-11 08:53:38 浏览数 (1)

1、 MVC

考点:结构、组件、对比

MVC流程图

MVC

M(Model):模型,应用程序主体部分,表示业务数据和业务逻辑,可以为多个视图提供数据。

V(View):视图,用户看到并与之交互的界面,视图可以向模型查询业务状态、接受模型的数据更新事件并同步更新界面。

C(Controller):控制器,接收用户的输入并调用模型和视图完成用户的请求,一方面接收视图的输入,将其转为对模型特定方法的调用;一方面处理来自模型的事件,调用适当的视图反馈给用户。

优点

允许多种用户界面的扩展:视图与模型没有必然联系,都是通过控制器发生关系,这样如果要增加新类型的用户界面,需要要改动相应的视图和控制器即可,而模型这另需发生改动。

易于维护:控制器和视图可以随着模型的扩展而进行相应的扩展,只要保持一种公共的接口,控制器和视图的旧版本也可以继续使用。

功能强大的用户界面:用户界面与模型方法调用组合起来,是程序的使用更清晰,可将友好的界面发布给用户。

MVC是构建应用框架的一个较好模式,将业务处理和显示分离,将应用分为控制器、模型和视图,增加了应用的可扩展性、强壮性和灵活性。

MPV流程图

对比:View和Model完全分离,视图和模型不能直接交互,必须通过Presenter。

MPV优点

低耦合:模型与视图完全分离,可以修改视图而不影响模型。

可以更高效地使用模型:所有的交互都发生在Presenter内部。

复用性好:可将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常有用,因为视图的变化总是比模型的变化频繁

可测试性好:如果把逻辑放在Presenter中,就可以脱离用户接口来测试这些逻辑。

MVVM流程图

对比:MVP进化而来,Presenter变成View Model,实现数据双向绑定,提升数据的一致性。

MVVM优点:数据可以实现双向绑定,当Model变化时,View-Model会自动更新,view也会自动变化。很好做到数据一致性。适合逻辑比较复杂的前端项目。

MVVM又被称作:model-view-binder模式

2、 J2EE

考点:结构、组件、持久层、ORM、多层架构

客户层:Applet,客户端的程序,它们可以直接嵌入到网页或者其他的特定容器中,并能够产生特殊的效果。

Web层: Servlet/JSP,JSP侧重于视图,相当于View,Servlet主要用于控制逻辑,类似一个Controler

业务逻辑层:EJB容器,EJB中的Bean相当于MVC中的

持久层:DAO、Hibernate、Mybatis。

构件:应用客户端构件、EJB构件、Servlets 和JSP、Applet构件。

EJB:会话Bean(Session Bean),实体Bean(Entity Bean)和消息驱动Bean(Message-Driven Bean)。

Session Bean:维护一个短暂会话,当客户端执行完成后,Session Bean及其数据会消失。

Entity Bean:维护一个持久稳定的数据,如果客户端终止或者结束服务,底层的服务会负责Entity Bean数据存储。

Message-Driver Bean:结合了Session Bean 和JMS,允许异步接收消息。

持久层:数据持久层是根据分层思想,通过建立逻辑数据操作接口,采取一定的对象/关系映射策略隐藏数据库访问代码的细节,向业务开发人员提供透明的对象持久化操作机制。

持久层设计:通常采用抽象工厂模式,可以创建一系列或相互依赖的对象而无需制定他们的具体的类。可以针对不同的数据库分别建立抽象工厂,便于数据库之间的切换。

优点

1、分离业务逻辑层和数据层,降低两者之间的耦合。

2、通过对象/关系映射向业务逻辑提供面向对象的数据访问。

3、简化数据层访问,隐藏数据库连接、数据读写命令和事务管理细节。

Hibernate、Mybatis对比

开发方面:hibernate开发,sql语句已经被封装,直接可以使用,加快系统开发; Mybatis 属于半自动化,sql需要手工完成,稍微繁琐。

Sql优化方面:Hibernate 自动生成sql,有些语句较为繁琐,会多消耗一些性能;Mybatis 手动编写sql,可以避免不需要的查询,提高系统性能。

对象管理方面::Hibernate 是完整的对象-关系映射的框架,开发工程中,无需过多关注底层实现,只要去管理对象即可;Mybatis需要自行管理映射关系。

缓存方面:Hibernate在使用二级缓存时如果出现脏数据,系统会报出错误并提示。Mybatis脏读不报错。

ORM:对象关系映射,是通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。

ORM优点

1、降低学习和开发成本。

2、程序员不用再写SQL进行数据库操作。

3、减少程序代码量。

4、降低由于SQL代码质量差带来的影响。

ORM缺点

1、性能比直接用SQL差。

2、处理复杂查询比较困难。

多层架构优点

1、开发人员可以只关注整个结构中的某一层。

2、可以很容易的用新的实现来替换原有层次的实现。

3、可以降低层与层之间的依赖。

4、有利于标准化。

5、利于各层逻辑的复用。

6、扩展性强,不同的层负责不同的层面。

7、安全性高,用户端只能通过逻辑层来访问数据库层,减少了入口点,把很多危险的系统功能屏蔽了。

8、项目结构更清楚,分工更明确,有利于后期的维护升级。

0 人点赞