《Head First》 MVC运用的设计模式
为什么使用 MVC 框架
跟设计模式有关系么?
M指的是模型和数据跟逻辑
V指的是视图显示
C指的是控制
MV之间使用了观察者模式,也就是信号监听,视图监听模型的状态变化而变化,减少了视图和模型的耦合
VC之间用的是策略模式,V使用C,C做处理,C可以被替换为其他C
V自己是组合模式,将多个ui组合使用
V可以直接获取模型数据,V可以有C和M的引用
C可以直接让V和M做修改,C可以生成V拥有M
但是M不能让C和V直接变化,也就是应该实现M跟V,C完全脱离关系。
在实际运用中,一般V里面确实会需要获取M的数据,也会直接调用C的接口(一般来说都会给C封装一个工厂,获取相应的策略C)
C里面直接调用V和M。
检验结构好不好,只要你发现你换了一个新V却不需要怎么改变C,而且完全不需要改变M
或者换了一个C,因为不需要改变M,就是比较好的结构了。主要还是减少这三者之间的耦合。