沃毕尼闷兜率
观察者模式,与不用观察者模式相比,除了多写了一堆的代码,其他并没体现出什么好处。
具体以你讲的例子来说:
但是,当系统变大的时候,这种方法马上面临难以扩展的问题,并且容易出错。
比如老王不想订阅了,我们需要改源代码。
比如又增加了一个客户,我们要去改源代码。
比如xxx,我们都需要改源代码。
这两个对象的耦合度太高了。$model = new Video();
$model->attach(new LaoWang());
$model->attach(new XiaoLi());
$model->attach(new ChuanPu());
$model->attach(new BingBing());
$model->new();与
$model = new Video();
$model->new();
LaoWang::update($model);
XiaoLi::update($model);
ChuanPu::update($model);
BingBing::update($model);两个代码相比,
前者观察者模式,并没有解决上面作者自己所提出来的那些问题:有需求变动,还是要改代码的,如果仔细看看,反而是观察者模式情况下,改动的代码还要更多。
具体来说(还是借用作者的例子):
“当我们再增加一个人加入 习大大 的时候,我们只需要增加一个习大大的观察者类,在实现的时候添加注册,而不需要去改Video类和其他的观察者类,将类之间的耦合降低了很多”
这里说了,增加习大大: 一要增加类,二要注册,其实还有个三,就是得触发。好处呢,是:不用改其他观察者类。
那么,不用观察者模式,如何?其实一样嘛,一要增加类,二是要调用。没了。是不是更简单?
上面说的好处:不用改其他类,普通的调用一样不用改其他类嘛,所以这个好处也不是优势,不存在的。不知道作者如何解释。
层主质疑得很好,好处应该有,但是真心没有说出来。
我觉得好处应该是:避免污染主逻辑!
未使用观察者模式,其实是面向过程式编程,某个逻辑改动会影响到整个逻辑的删减
使用观察者模式,其实是面向对象了,具体的观察者和被观察者的交互已经写好了(foreach遍历),重点只是注意一下观察者的删减即可,不会影响到主逻辑- 沃毕尼闷兜率 赞了回复
观察者模式,与不用观察者模式相比,除了多写了一堆的代码,其他并没体现出什么好处。
具体以你讲的例子来说:
但是,当系统变大的时候,这种方法马上面临难以扩展的问题,并且容易出错。
比如老王不想订阅了,我们需要改源代码。
比如又增加了一个客户,我们要去改源代码。
比如xxx,我们都需要改源代码。
这两个对象的耦合度太高了。$model = new Video();
$model->attach(new LaoWang());
$model->attach(new XiaoLi());
$model->attach(new ChuanPu());
$model->attach(new BingBing());
$model->new();与
$model = new Video();
$model->new();
LaoWang::update($model);
XiaoLi::update($model);
ChuanPu::update($model);
BingBing::update($model);两个代码相比,
前者观察者模式,并没有解决上面作者自己所提出来的那些问题:有需求变动,还是要改代码的,如果仔细看看,反而是观察者模式情况下,改动的代码还要更多。
具体来说(还是借用作者的例子):
“当我们再增加一个人加入 习大大 的时候,我们只需要增加一个习大大的观察者类,在实现的时候添加注册,而不需要去改Video类和其他的观察者类,将类之间的耦合降低了很多”
这里说了,增加习大大: 一要增加类,二要注册,其实还有个三,就是得触发。好处呢,是:不用改其他观察者类。
那么,不用观察者模式,如何?其实一样嘛,一要增加类,二是要调用。没了。是不是更简单?
上面说的好处:不用改其他类,普通的调用一样不用改其他类嘛,所以这个好处也不是优势,不存在的。不知道作者如何解释。
验证码显示不出来:
http://localhost/www/sns/backend/web/index.php/site/captcha?v=591171d836863我放在phpstudy的www下的www文件夹下的sns里面,验证码是这个地址,但是显示不出来,也不知道怎么改。面向对象,各种方法之间跳,跳得太乱了。
- 沃毕尼闷兜率 回复了话题 如何在Yii 2.0中创建全局函数
写一个function.php
然后入口文件里引用就可以啦还有很多事情不是要写纯的,纯容易极端,相信各位都见过这种例子:
如果完全用A方法,会出现一个极端
如果完全用B方法,也会出现一个极端但是,如果AB方法同时使用,哈哈,问题就被完美解决,这就是平衡!!!
- 沃毕尼闷兜率 发表了说说基础班和高级版用哪个啊?