美文网首页
设计模式——MVC 正确的降低耦合的方式

设计模式——MVC 正确的降低耦合的方式

作者: coding_Liu | 来源:发表于2018-09-07 01:43 被阅读92次

参考文章:
https://blog.csdn.net/BaiHuaXiu123/article/details/51554282

参考图片:


20160601104849736.jpeg

这几个问题读上文

下面是个人理解,首先了解几个概念:
C中有引用一个M指针(属性)、有引用一个V指针(属性)叫做C被M、V侵染(C被M、V给耦合了),但这种耦合是必然的。所谓解耦是说让V、M直接不存在耦合,通过代理、Block、Notif来进行进行解耦合。

MS:业务模型
V2V1:封装组合控件
M1M2: 组合数据模型
... ...
像这种组合降低了复用性,所以设计上来说尽量拆分开,以达到解耦的特性。
拆分方式 :
1、提取base;
Vv1\Vv2\Vv3 ---->BaseV + v1 +v2 +v3
2、提取公共部分 公共部分服用
V1S\ V2S \ V3S ----> S (V1 + V2 +V3 )

1.什么是MVC设计模
M数据模型;V视图模型;V控制器模型

2.为什么要使用MVC设计模
MVC使前后台相互分离,双方通过控制器来进行控制,且相互之间不影响。这样在编程的时候,前台可以安心做前台,后台可以专注于功能。且修改的时候非常容易。

3.MVC设计模存在的问题
经典存在问题是大部分写MVC的结构都是这样的,M管理数据,C中引用M当作属性,C中引用V当作属性,V中Import M当作预留属性(这句便是耦合,将M和V建立起了关系),使用时是这样的,C来调度V和M(承载V将M数据进行展示,C中的网络请求来更新M,同时通过V的Setter方法给V中的M属性对接上值),这样可以说是V被M给耦合了。这便是经典MVC存在的弊端,但是为什么还有好多人去这么写?是因为快!操作快,这就是伪MVC的经典好处也是存在的耦合弊端。

真正的MVC应该在M和V直间通过协议来联系!!!

4.什么是耦合性
耦合性就是Import了,换句话来说就是引用了。
MVC也是耦合的,耦合是避免不了的,但是可以尽可能的合理降低,保持模块功能的独立性,以便于模块使用的灵活性。这就是解耦。

5.如何去解耦
通过协议、block、notify来尽可能保持模块功能的独立性。

扩展:
1、什么是循环引用: 形成闭环;
解决方案:weak、strong
2、代理不一定用weak来修饰,大多数见到用weak是为了防止循环引用。
3、block为什么用copy,想一下深copy、浅copy。self.XXX 的setter方法。

相关文章

  • 设计模式——MVC 正确的降低耦合的方式

    参考文章:https://blog.csdn.net/BaiHuaXiu123/article/details/5...

  • Django中MVC与MVT设计模式的区别系列之一

    MVC设计模式 MVC设计模式核心: 解耦,让不同的代码块之间降低耦合,增强代码的可扩展和可移植性,实现向后兼容。...

  • MVC MVT MVVM

    MVC设计模式核心:解耦,让不同的代码块之间降低耦合,增强代码的可扩展和可移植性,实现向后兼容。mvc.pngMV...

  • 搭建一个MVP框架

    什么是MVP:   MVP是一种设计模式,是MVC模式的一种演变。他出现的主要目的是划分代码模块职责,降低模块耦合...

  • #AndroidMVPFrame

    Mvp模式简介 衍生于MVC 模式,降低了耦合性,避免了View(Activity/Fragment)承担了所有的...

  • 浅析 MVC

    一、 MVC 设计模式 1. 设计模式 设计模式,是通用代码(组织方式)的一种统称 2. MVC 是什么 MVC ...

  • 面试总结

    基础部分 设计模式 1). MVC模式:Model View Control,把模型 视图 控制器 层进行解耦合编...

  • Design Pattern

    设计模式是一种可复用的面向对象编程技术 设计模式的原理:面向接口编程 设计模式的目标:降低耦合,增强灵活性 要让你...

  • Java面试题集锦10—SSH框架知识

    43.什么是MVC设计模式MVC模式的主要思想是把控制器、数据模型和视图进行分离,达到高内聚和低耦合的作用。使用M...

  • 观察者模式

    简介 观察者模式用于将两个耦合的对象以事件的方式进行分离,从而降低其耦合度。 示例

网友评论

      本文标题:设计模式——MVC 正确的降低耦合的方式

      本文链接:https://www.haomeiwen.com/subject/grhqgftx.html