策略模式 | 算法的自由切换和扩展,包括增添算法、更换算法 |
---|---|
观察者模式 | 一对一或一对多的对象之间交互过程,解耦合 |
访问者模式 | 系统的数据结构相对稳定和易于变化的访问者算法解耦合 |
模板模式 | 基于继承的代码复用技术,使得子类重写父类的算法,推迟实现 |
命令模式 | 解除发送命令者和接受命令者耦合,类似于迪米特法则 |
迭代器模式 | 分离聚合对象(遍历对象)中的遍历功能,通过迭代器实现 |
这次就先聊聊这六种模式,篇幅不宜过长,剩余的留给下篇博客,之前还无法体会结构型模式和行为型模式的区别,间隔了几天后整理内容,发现对设计模式的理解又加深了许多,行为型模式偏于类和对象之间的“交互”非“结合”。
交互:对象之间有沟通、传达消息的作用 | 组合:对象和类之间拼接完成相应功能 |
--------------------------<通过场景模式一起来体验设计模式之美>--------------------------------------------------------
学习了这么久,打算出门放放风,透透气,去哪里好呢?转念一想还是去商场吧,毕竟可以买到很多好吃的食物,但是我可不是一个吃货,只不过就是总也吃不饱,这还不算,关键不长肉,气得我.......省略一万个字。
一、策略模式:进入商场后,竟然有这么多好吃的,原来今天是周末,打算狠狠的宰我们消费者一笔;首先吸引我眼球的酸奶类饮品,好几瓶打包到一起售卖,竟然还有优惠,转念一想,好像和上周的优惠策略不一样,不对,贵了,算了,吃好就行;
针对同一种产品,有不同的优惠策略,也就是不同的算法,方便调用 |
---|
二、观察者模式:刚买了饮品后,又被隔壁美味的蛋糕吸引过去了,其实吸引我的不是食物,而是售货员的吆喝,总之吧,反正没有抵住诱惑,买些吃的;
售货员吆喝食物,周围不同的顾客做出不同的反应,接受或者拒绝等 |
---|
三、访问者模式:慢慢溜达到了美容护肤产品的柜台,柜台周围有很多女性顾客,但是爱美之心人皆有之,何况我的肤色,唉!
数据结构分为男性和女性,推出针对不同性别的同一品牌不同类型两种类型美肤产品,效果特别棒,赶快入手改变吧。 |
---|
四、模板模式:慢慢就溜达到一片嘈杂热闹的地方,原来是有趣的有奖竞猜活动,只要是100元购物小票即可参与,碰巧自己可以参加,便也去凑凑热闹,兴许中大奖了呢;
原来是给出三个问题,根据回答对的问题个数来分发奖项,现在互联网都这么发达,或者这个活动就是一个噱头 |
---|
五、命令模式:时间一晃便到了中午,肚子咕噜噜的叫着,该去吃饭了,来到一家餐馆里面,点了一些吃的,然后就静静的等着,但是发现自己刚买的饮品还没喝完,本着节约的我,就取消了刚点的其它饮品,是不是很节约。
前台服务员不参与后厨食物的制作,只负责客人点餐,具体的清单会自动在后厨机子打印出来 |
---|
六、迭代器模式:吃完饭有些困意了,打算回家小憩一会,出门正好碰上公交车,还不错的,哈哈。公交车上这回人太多了,我们刚上来的还一直让往后走,难道售票员不怕我们逃票嘛?
售票员针对乘客聚类,采用不同的遍历方式,检查是否所有人都打票了 |
---|