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