不管是新手还是老鸟,想必都听说过这么一个词 -- 设计模式,至于他是什么,谓仁者见仁,智者见者。
本人呢,最近也研(zhuang)读(b)了一下它,在这陪大家聊两句,非喜勿喷。
PS: 参考书籍 《Head First 设计模式》
闲言少叙,书接正文
读后感: 套路,都他娘滴套路,设计模式,绝对是套路界的鼻祖楷模。
这话什么意思呢,所谓的设计模式,就是前辈们辛辛苦苦打怪升级总结的副本攻略,你呢,攻略拿到手,在去下这个副本,绝对妥妥的稳过。在此,可能有的小伙伴就不高兴了,我就喜欢自己打副本,就当是开荒了,这当然可以了,对吧。不过,不好意思,我20级了,您老人还在10级晃悠呢!!!哈哈。。。
城市套路深,俺想回农村。
文章标题为什么是生活篇呢,客观暂且往下边看,我这边列举部分设计模式,稍后会慢慢补全,嘿嘿。。。
(PS: 黑色大号字--书中对设计模式的定义;黑色小号字--本人理解)
-
策略模式 -- 定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
东北大烩菜与南方精致小菜,一锅粥似的乱炖,不如一点一点的分离开来,做成精致小菜,方便一个个上盘。
-
观察者模式 -- 在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。以松耦方式在一系列对象之间沟通状态。
一家五口,三个孩子,爸爸说,我病了,孩子们撒丫的往回跑来看爸爸,可不是为了房子哦。
-
装饰者模式 -- 动态地将责任附加到对象上。想要扩展功能,装饰者提供有别于继承的另一种选择。
定义一个基类,然后把不同功能的类,叠加到基类上。举例来说,你有一个发动机,你给它安上四个轮子,就是汽车;你给它安上两个轮子,就是摩托车。
-
工厂模式 -- 定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
-
抽象工厂模式 -- 提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
把对象的创建封装起来,并且下放到子类去实现,以便于得到更松耦合、更有弹性的设计。
其实,可以这样理解:
你给我一碗米饭,我还你一份盖饭
一份炒饭
一份饭团
。。。
这些都是我说了算。
-
单例模式 -- 确保一个类只有一个实例,并提供全部访问点。
简单来说,老子就是唯一的,是你们 new() 不出来的。
-
命令模式 -- 将请求封装成对象,这可以让你使用不同的请求、队列,或者日志请求来参数化其他对象。命令模式也可以支持撤销操作。
我命令你去给我买一份饭,我不管你去哪买,哈哈。。。
-
适配器模式 -- 将一个类的接口,转换成客户期望另一个接口。适配器让原本不兼容的类可以合作无间。
适配器,就像你要出国旅游,我们是不是需要买一个插座转换器,我想出过国的小伙伴都懂滴。。。
-
外观模式 -- 提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
用手机来说,我只需要一个打电话功能,我不管你这个功能背后有多少个实现方式。
-
代理模式 -- 为另一个对象提供一个替身或占位符以访问这个对象。
我的快递到了,告诉前台,帮我签收一下。(iOS)
PS: iOS 程序狗一枚
可能在对某些设计模式的理解有所偏差。
网友评论