博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MVC的高耦合问题
阅读量:2489 次
发布时间:2019-05-11

本文共 855 字,大约阅读时间需要 2 分钟。

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

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

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

怎样解决这一问题呢!

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

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

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

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

你可能感兴趣的文章
股票网格交易策略
查看>>
matplotlib绘图跳过时间段的处理方案
查看>>
vnpy学习_04回测评价指标的缺陷
查看>>
ubuntu终端一次多条命令方法和区别
查看>>
python之偏函数
查看>>
vnpy学习_06回测结果可视化改进
查看>>
读书笔记_量化交易如何建立自己的算法交易01
查看>>
设计模式03_工厂
查看>>
设计模式04_抽象工厂
查看>>
设计模式05_单例
查看>>
设计模式06_原型
查看>>
设计模式07_建造者
查看>>
设计模式08_适配器
查看>>
设计模式09_代理模式
查看>>
设计模式10_桥接
查看>>
设计模式11_装饰器
查看>>
设计模式12_外观模式
查看>>
设计模式13_享元模式
查看>>
设计模式14_组合结构
查看>>
设计模式15_模板
查看>>