1700470310
this.b.doSomethingB();
1700470311
1700470312
}
1700470313
1700470314
public void methodC(){
1700470315
1700470316
this.context.complexMethod();
1700470317
1700470318
}
1700470319
1700470320
}
1700470321
1700470322
通过这样一次封装后,门面对象又不参与业务逻辑了,在门面模式中,门面角色应该是稳定,它不应该经常变化,一个系统一旦投入运行它就不应该被改变,它是一个系统对外的接口,你变来变去还怎么保证其他模块的稳定运行呢?但是,业务逻辑是会经常变化的,我们已经把它的变化封装在子系统内部,无论你如何变化,对外界的访问者来说,都还是同一个门面,同样的方法——这才是架构师最希望看到的结构。
1700470323
1700470324
1700470325
1700470326
1700470328
设计模式之禅 23.5 最佳实践
1700470329
1700470330
门面模式是一个很好的封装方法,一个子系统比较复杂时,比如算法或者业务比较复杂,就可以封装出一个或多个门面出来,项目的结构简单,而且扩展性非常好。还有,对于一个较大项目,为了避免人员带来的风险,也可以使用门面模式,技术水平比较差的成员,尽量安排独立的模块,然后把他写的程序封装到一个门面里,尽量让其他项目成员不用看到这些人的代码,看也看不懂,我也遇到过一个“高人”写的代码,private方法、构造函数、常量基本都不用,你要一个public方法,好,一个类里就一个public方法,所有代码都在里面,然后你就看吧,一大坨程序,看着就能把人逼疯。使用门面模式后,对门面进行单元测试,约束项目成员的代码质量,对项目整体质量的提升也是一个比较好的帮助。
1700470331
1700470332
1700470333
1700470334
1700470336
设计模式之禅 第24章 备忘录模式
1700470337
1700470339
24.1 如此追女孩子,你还不乐
1700470340
1700470341
大家有没有看过尼古拉斯・凯奇主演的《Next》(中文译名为《预见未来》)?尼古拉斯・凯奇饰演一个可以预视并且扭转未来的人,其中有一个情节很是让人心动——男女主角见面的那段情节:Cris Johnson(尼古拉斯・凯奇饰演)坐在咖啡吧台前,看着离自己近在咫尺的Callie Ferris(朱莉安・摩尔饰演),计划着怎么认识这个命中注定的女人,看Cris Johnson如何利用自己的特异功能:
1700470342
1700470343
❑Cris Johnson端着一杯咖啡走过去,说“你好,可以认识你吗?”被拒绝,恢复到坐在咖啡吧台前的状态。
1700470344
1700470345
❑走过去询问是否可以搭车,被拒绝,恢复原状。
1700470346
1700470347
❑帮助解决困境,被拒绝,恢复原状。
1700470348
1700470349
❑采用嬉皮士的方式解决困境,被拒绝,恢复原状。
1700470350
1700470351
❑帮助解决困境,被打伤,装可怜,Callie Ferris怜惜,于是乎相识了。
1700470352
1700470353
看看这是一件多么幸福的事情,追求一个女生可以多次反复地实验,直到找到好的方法和途径为止,这估计是大多数男生都希望获得的特异功能。想想看,看到一个心仪的女生,我们若反复尝试,总会有一个方法打动她的,多美好的一件事。现在我们还得回到现实生活,我们来分析一下类似事情的经过:
1700470354
1700470355
❑复制一个当前状态,保留下来,这个状态就是等会儿搭讪女孩子失败后要恢复的状态,你不恢复原始状态,这不就露馅儿了吗?
1700470356
1700470357
❑每次试探性尝试失败后,都必须恢复到这个原始状态。
1700470358
1700470359
❑N次试探总有一次成功吧,成功以后即可走成功路线。
[
上一页 ]
[ :1.70047031e+09 ]
[
下一页 ]