摘要: 实例变量:属性其实说直白点就是 ivar + setter + getter(实例变量+存取方法),不过在OC中属性多了字面量这一系列特殊关键字使得OC属性有些不同。成员属性我们应该都使用过,比如现在定义一个Car类有name和speed成员变量:#import @interface Car : N... 阅读全文
posted @ 2015-08-09 21:59 愤怒大熊猫 阅读(2180) 评论(0) 推荐(1) 编辑
摘要: 今天在看HTTP协议,看到了response头中的cache-control,于是就深入的研究了一下。发现了iOS中一个一直被我忽略的类——NSURLCache类。NSURLCacheNSURLCache用于缓存网络请求,也就是NSURLRequest,然后根据我们设置的NSURLCache策略进行... 阅读全文
posted @ 2015-08-04 09:52 愤怒大熊猫 阅读(9076) 评论(1) 推荐(2) 编辑
摘要: OC Block其实功能就类似C语言的函数指针,js中的闭包之类的。把代码块当做一个变量就行操作,有自己的变量和作用域。简单看一下Block的语法和可能出现的问题:Block语法:block语法相对宽松,很多部分都可以省略,常规上我们实现一个block需要有以下几个部分^ 返回值类型 参数列表 表达... 阅读全文
posted @ 2015-08-02 18:06 愤怒大熊猫 阅读(560) 评论(1) 推荐(0) 编辑
摘要: 什么是GCDGCD是苹果对多线程编程做的一套新的抽象基于C语言层的API,结合Block简化了多线程的操作,使得我们对线程操作能够更加的安全高效。在GCD出现之前Cocoa框架提供了NSObject类的performSelectorInBackground:withObjectperformSele... 阅读全文
posted @ 2015-08-01 23:08 愤怒大熊猫 阅读(1474) 评论(2) 推荐(0) 编辑
摘要: 中介者模式中介者模式很好的诠释了迪米特法则,任意两个不相关的对象之间如果需要关联,那么需要通过第三个类来进行。中介者就是把一组对象进行封装,屏蔽了类之间的交互细节,使不同的类直接不需要持有对方引用也可以进行访问。中介者Mediator会持有同事类(就是需要处理交互逻辑的对象)Colleague的引用... 阅读全文
posted @ 2015-07-26 16:52 愤怒大熊猫 阅读(676) 评论(0) 推荐(0) 编辑
摘要: 外观模式外观设计模式和适配器差不多,不过它门对对象控制的粒度不同,适配器一般只是控制一个系统和客户端的对接。外观则是用来抽象多个系统一起工作。外观一般具有多个子系统,所以外观应持有多个子系统的引用,同构向高层提供抽象接口实现封装。外观一般是可以多次使用的,比如一个庞大的系统中,可以多次使用外观来进行... 阅读全文
posted @ 2015-07-26 11:07 愤怒大熊猫 阅读(548) 评论(0) 推荐(0) 编辑
摘要: 桥接模式桥接模式就是让抽象和实现分离的最好体现,符合面向对象的依赖倒转原则。Abstruct抽象类负责设计客户端接口,Implementor则负责具体的细节逻辑。在桥接模式中,Abstruct类持有一个Implementor类的引用,该引用也是桥接的两个对象的唯一通信点。应用场景1.不想在抽象与其实... 阅读全文
posted @ 2015-07-25 09:19 愤怒大熊猫 阅读(782) 评论(0) 推荐(0) 编辑
摘要: 适配器模式适配器模式通俗来讲,其实就是对客户端添加新的类但却不修改客户端和新的类的接口。此时我们需要自己来实现适配,在适配器模式中有Target对象,即客户端所需要的接口对象,Adaptee对象,即需要适配的对象,中间需要Adapter对象来进行适配。简单来说,客户端要用某个类的接口,但是和客户端所... 阅读全文
posted @ 2015-07-22 22:09 愤怒大熊猫 阅读(1144) 评论(0) 推荐(0) 编辑
摘要: 单例和其它语言的单例产不多,可以说是最简单的一种设计模式了。但是有几个点需要注意下,单例就是一个类只有一个实例。所以我们要想办法阻止该类产生别的实例,一般语言中都会将构造函数写为private。但是OC中的函数并没有限定符,所以我们需要用一些小技巧来屏蔽这一点。应用场景类只能有一个实例,而且必须从一... 阅读全文
posted @ 2015-07-21 21:13 愤怒大熊猫 阅读(1282) 评论(0) 推荐(0) 编辑
摘要: 生成器生成器,也成为建造者模式,同样是创建对象时的设计模式。该模式下有一个Director(指挥者),客户端知道该类引用用来创建产品。还有一个Builder(建造者),建造者知道具体创建对象的细节。指挥者只是起到协调的作用,它有一个Builder引用用于指挥Builder如何创建对象,Builder... 阅读全文
posted @ 2015-07-21 09:20 愤怒大熊猫 阅读(809) 评论(0) 推荐(0) 编辑