美文网首页
iOS常用的几种设计模式

iOS常用的几种设计模式

作者: 海耐射手 | 来源:发表于2017-04-08 20:40 被阅读0次

    iOS开发过程中,有时候经常弄不清楚常用的几种开发模式,现有时间进行一下简单的总结和探讨:

    下面先说一下设计模式都有哪几种:

    1、单利模式

    2、代理模式

    3、工厂模式

    4、观察者模式

    一、单例模式

    单例设计模式确保对于一个给定的类全局只创建一次。它通常采用懒加载的方式在第一次用到实例的时候再去创建它。

    应用场景:确保程序运行期某个类,只有一份实例,用于进行资源共享控制。

    优点:无论调用多少次有且仅有一个对象,类似全局变量,在整个工程中都可以使用。

    二、代理模式

    应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现。

    优点:1、如果delegate中的一个方法没有实现那么就会出现编译警告/错误

               2、协议必须在controller的作用域范围内定义

               3、在一个控制器中可以定义定义多个不同的协议,每个协议有不同的delegates

    三、工厂模式

    工厂模式:我们可能会在不同的地方去创建这个对象,那么我们可能需要写100句alloc 了,但是如果我们在创建对象的时候,需要在这些对象创建完之后,为它的一个属性添加一个固定的值,比方说都是某某学校的学生,那么可能有需要多些100行重复的代码了,那么,如果写一个-(void)createObj方法,把创建对象和学校属性写在这个方法里边,那么就是会省事很多,也就是说我们可以alloc 创建对象封装到一个方法里边,直接调用这个方法就可以了,这就是简单工厂方法

    应用场景:客户端只知道传入工厂类的参数,对于如何创建对象的逻辑不必关心时。

    优势:客户端可以直接消费产品,而不必关心具体产品的实现(消除了客户端直接创建产品对象的责任,实现了对责任的分割)。

    不足:1、其集中了所有产品的创建逻辑,一旦不能正常工作,整个系统都会受到影响,而且当产品类别多结构复杂的时候,把所有创建工作放进一个工厂来,会使后期程序的扩展较为困难。

                2、要创建的类必须拥有同一个父类

                3、要创建的类在100个不同的地方所调用的方法必须一样

    注意:项目初期,软件结构和需求都没有稳定下来时,不建议使用此模式,因为其劣势也很明显,增 加了代码的复杂度,增加了调用层次,增加了内存负担。所以要注意防止模式的滥用。

    四、观察者模式 —— KVO

    观察者模式:利用键值观察可以注册成为一个对象的观察者。这是一个对象与另外一个对象保持同步的一种方法,即当另外一种对象的状态发生改变时,观察对象马上作出反应。它只能用来对属性作出反应,而不会用来对方法或者动作作出反应

    相关文章

      网友评论

          本文标题:iOS常用的几种设计模式

          本文链接:https://www.haomeiwen.com/subject/gfhrattx.html