MVC的高耦合问题


JDBC主要功能在于提供了用户和底层数据的接口,相当于一个桥梁,将两者连接起来,这个接口的实现,通常采用经典的MVC三层架构模式来解决:

MVC(Model、View、Controller)三层架构作为一种常用的设计模式,已经经典到了不能再经典的地步,自身的优点不明而喻,MVC三层结构都作为一个独立的单位而存在,彼此之间有依赖性较小,每个单位部分都有自己的关注点和职责,这就相当于复合了软件设计高内聚、低耦合的特征;这样的软件也便于维护和扩展。

然而,作为老生常谈的话题,这样的经典模式也有自己解决不了的问题,也有自己遇到一些麻烦,比如说:View层和Controller层经常会遇到高耦合的问题,视图层遇到客户请求,发送事件给控制层,控制层为了实现自身的逻辑功能,可能要用到一些视图层的东西,用户请求的表现逻辑和控制层要实现的业务逻辑两者混合起来了,不能合理分工处理自己的事物,造成两部分之间的依赖性过强,出现了高耦合的现象;

怎样解决这一问题呢!

下面通过引入一个过渡层Mediator,介入视图层(View)和控制层(Controller)之间,这样的设计模式如同将传统的MVC模式扩展一般---PureMVC模式;

引入Mediator(中介媒体),二次派发事件:


具体实现过程:视图层(View)接受用户请求,为了实现表现逻辑会在自身相应的方法中收集自身需要的数据,进行第一次事件广播或者事件派发;此时,Mediator层的监听器会监听到相应的事件,在相应的方法中对其处理,该层根据命令需求,协调相关构件来实现上一层要实现的表现逻辑,进行第二次事件广播或事件派发;紧接着,控制层(Controller)会监听到事件,进行业务逻辑的完成工作;

两次事件广播过程中,Mediator层将视图层和控制层分割了出来,View层和Mediator层和Controller层之间并不存在调用关系,而是二次委派事件的机制来完成的,三层之间独立存在,甚至感应不到彼此的存在;该模式缓解了视图层和控制层紧耦合的问题;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值