随笔分类 -  iOS设计模式

摘要:工厂方法模式====###基本理解 * 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 * 简单工厂的最大优点就是工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对客户端来说,去除了具体产品的依赖。但是它违背了开发封闭... 阅读全文
posted @ 2015-08-09 09:46 zhanggui 阅读(466) 评论(0) 推荐(0)
摘要:简单工厂模式=====###基本理解 * 到底要实例化谁,将来会不会增加实例化的对象,比如计算器增加开根运算,这是很容易变化的地方,应该考虑用一个单独的类来做这个创造实例的过程,这就是工厂。 * 通过使用工厂模式,我们可以降低耦合度,做到对扩展开放,对修改封闭。如果需要再增加其他的方法,我们只需要重... 阅读全文
posted @ 2015-08-09 09:02 zhanggui 阅读(335) 评论(0) 推荐(0)
摘要:迭代器模式===###基本理解 * 迭代器模式(Iterrator):提供一个方法顺序访问一个聚合对象中的各个元素,而又不暴露该元素的内部表示。 * 当你访问一个聚合对象,而且不管这些对象是什么都需要遍历的时候,你就应该考虑用迭代器模式。 * 你需要对聚集有多种方式遍历时,可以考虑用迭代器模式... 阅读全文
posted @ 2015-08-08 11:25 zhanggui 阅读(916) 评论(0) 推荐(0)
摘要:备忘录模式===###基本理解 * 这个模式有三个关键角色:原发器(Originator)、备忘录(Memento)、看管人(caretaker)。三者的基本关系是:原发器创建一个包含其状态的备忘录,并传给看管人。看管人不知道如何与备忘录交互,但会把备忘录放在一个安全之处保管好。 * 备忘录(Mem... 阅读全文
posted @ 2015-08-08 09:22 zhanggui 阅读(1218) 评论(0) 推荐(1)
摘要:策略模式(Strategy)===###基本理解 * 面向对象的编程,并不是类越多越好,类的划分是为了封装,但分类的基础是抽象,具有相同属性和功能的对象的抽象集合才是类。 * 策略模式:它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。 * 简单工... 阅读全文
posted @ 2015-08-07 10:12 zhanggui 阅读(1113) 评论(0) 推荐(0)
摘要:命令模式===###基本理解 * 命令模式(Command),将一个请求封装为一个对象,从而使你可用不同的请求对客户端进行参数化;对请求队列或记录请求日志,以及支持客可撤离的操作。 * 苹果的Target-Action调用机制已经实现了命令模式。NSInvocation包含一个target对象,一个... 阅读全文
posted @ 2015-08-06 21:51 zhanggui 阅读(739) 评论(1) 推荐(0)
摘要:代理模式====###基本理解 * 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。 ###代理模式的应用 * 远程代理:就是为一个对象在不同的地址空间提供据不代表。这样可以隐藏一个对象存在于不同地址空间的事实。 * 虚拟代理:是根据需要创建开销很大的对象,通过它来存放实例化需... 阅读全文
posted @ 2015-08-06 17:46 zhanggui 阅读(463) 评论(0) 推荐(0)
摘要:单例模式===###基础理解* 所有类都有构造方法,不编码则系统默认生成空的构造方法,若有显示定义的构造方法,默认的构造方法就会失效。* 单例模式(Singleton):保证一个类仅有一个实例,并提供一个访问它的全局访问点。*通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象... 阅读全文
posted @ 2015-08-06 16:02 zhanggui 阅读(511) 评论(0) 推荐(0)
摘要:中介者模式====###基本理解 * 中介者模式又叫做调停者模式,其实就是中间人或者调停者的意思。 * 尽管将一个系统分割成许多对象通常可以增加可复用性,但是对象之间的连接又降低了可复用性。 * 如果两个类不必彼此直接通信,那么着两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的方法... 阅读全文
posted @ 2015-08-06 13:27 zhanggui 阅读(1337) 评论(0) 推荐(0)
摘要:观察者模式===###基本理解 * 观察者模式又叫做发布-订阅(Publish/Subscribe)模式。 * 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,是他们能够自动更新自己。 * 观察者只从通知器(发... 阅读全文
posted @ 2015-08-06 10:33 zhanggui 阅读(281) 评论(0) 推荐(0)
摘要:组合模式(Composite)====###基本理解 * 整体和部分可以一直对待。 * 组合模式:将对象组合成树形结构以表示“部分--整体”的层次结构。组合模式使得用户对单个对象和组合独享的使用具有一致性。 * 透明方式和安全方式 * 透明方式:在Component(为组合中的对象声明接... 阅读全文
posted @ 2015-08-06 09:13 zhanggui 阅读(1894) 评论(0) 推荐(0)
摘要:原型模式===###基本理解 * 原型模式(Prototype),用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 * 原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。 * 一般在初始化信息不发生变化的情况下,克隆是最好的办法,这既隐藏了对... 阅读全文
posted @ 2015-08-05 21:11 zhanggui 阅读(517) 评论(0) 推荐(0)