设计模式
文章平均质量分 89
程序员的修养
好好学习
展开
-
iOS设计模式-策略模式
策略模式 (1)定义 定义一系列算法,把它们一个个封装起来,并且是它们可以相互替代,本模式使得算法可独立于使用它的客户而改变(2)类图 Strategy类声明了它所支持的或相关的算法的一个共同接口。 ConcreteStrategyA(B\C)具体的策略类通过策略接口来实现相关的算法 Context类:context类的对象配置有一个具体策略对象的实例场景对象通过策略接口调用由具原创 2017-02-15 16:54:11 · 262 阅读 · 0 评论 -
iOS设计模式---适配器模式
2016年系统的学习了iOS的设计模式,在整理文档时发现有几篇总结因为当时事情耽误没有发出,近几天会逐渐发布,借此在复习一下iOS的设计模式。 相信在以后的工作中会用到。下面补上适配器模式的内容1.介绍 适配器模式主要应用于“希望复用一些现存的类,但是接口又与复用环境要求不一致的情况”,在遗留代码复用、类库迁移等方面非常有用。 2.分类 适配器模式有对象适配器和类适配器两种形式的实现结构原创 2017-03-30 08:05:03 · 399 阅读 · 0 评论 -
iOS设计模式-建造者模式
1、引例: 汽车,是一个很复杂的对象,它有很多的部件,车轮、发动机、座椅、车门、油箱等等;它的组装过程也很复杂(需要专业人士按步骤进行装配),建造者模式就是为了将部件和组装过程分开的。同样的,我们使用的计算机也一样,有很多的部件,组装过程也很复杂(当然,对于我们这样的专业人士可能感觉不复杂);本文例子:建房子,有打地基,建造房子,装修;设计师(Director)知道建造过程,总承包商知道需要原创 2017-02-15 14:16:16 · 339 阅读 · 0 评论 -
iOS设计模式-工厂方法
工厂方法1、定义 工厂方法中定义创建对象的接口,让子类决定实例化哪个类。工厂方法使得一个类的实例化延迟到其子类2、何时使用 (1)类想让子类决定在运行时创建什么 (2)编译时无法确定创建对象的类型客户想要某种产品(iPhone手机),它向简单工厂发出制作iPhone手机的命令,然后工厂制造相应的手机BaseDevice 抽象手机:需要空实现协议;是工厂的产品 PhoneProtocol协原创 2017-02-17 14:47:59 · 320 阅读 · 0 评论 -
iOS设计模式-模板方法模式
模板方法模式 (1)定义 在模板中定义一个操作中算法的骨架,而将一些步骤延迟到子类中。模板方法使子类可以重新定义算法的某些特定步骤而不改变算法的结构。 (2)主要思想 在抽象类(模板类)的一个方法中定义算法,在这个方法中调用的基本操作由子类重载予以实现。这个方法称为”模板“,--抽象类定义模版,子类重载基本操作以提供独特操作懂摸板方法调用(3)类图 ConcreteC原创 2017-02-16 09:45:31 · 436 阅读 · 0 评论 -
iOS设计模式-责任链模式
(1)定义 责任连模式:使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间发生耦合,此模式将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。(2)主要思想 对象引用了同一类型的另一个对象,形成一条链。链中的每个对象实现了同样的方法,用于处理对链中第一个对象发起的同一个请求;如果某个对象不知道如何处理请求就把请求传给下一个响应器(3)类图 Ha原创 2017-02-15 16:01:44 · 452 阅读 · 0 评论 -
iOS设计模式-中介者模式
1.中介的重要性例子,房子的卖家与买家,如果有2位买家,2位卖家,如果没有中介者,他们彼次之间会产生各种关系 买家A2 (9000-12000) 买家A1 (8000-10000) 卖家B1 (8000-11000) 买家B1 (9000-12000)如果卖家1和卖家2均售价9000,那么会出现A1—B1,A1—B2,A2—B1,A2—B2 如果卖家1和卖家2均售价8000,那么会原创 2017-02-15 14:19:51 · 505 阅读 · 0 评论 -
iOS设计模式-访问者模式
访问者模式1.定义 它表示一个作用于某对象结构中的各个元素的操作,它让我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作 2.理解这用于某个对象结构中的元素数目比较固定(基本不会变动),而对于这些元素的操作可能要变化(增加新操作),vistor提供了在某个状态下,对对象结构中各元素的不同操作的访问接口,对象中使用accept接口接受一个具体的访问者。符合open-close原则。访问者原创 2017-02-15 14:10:33 · 742 阅读 · 0 评论 -
iOS设计模式-装饰模式
装饰模式 引例:我们拍了一种照片,当场不会想如何装饰它,但是当照片冲洗出来后,我们会想给它加一个玻璃相框中。但是后来又想将它放进一个木头相框中。虽然相框换了,但是照片没变,因为只是往照片添加了东西,而并没有改变它。 在面向对象的软件中,向对象添加“东西”(行为),而不破坏其原有的内容,这样就得到一个加强版的对象(带相框的照片)。任何“东西”(相框)均可动态添加和删除。这就是“原创 2017-02-15 14:08:54 · 266 阅读 · 0 评论 -
iOS设计模式-迭代器
一、介绍 迭代器:提供一种方法顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示.(便利集合中元素的只能从集合本身转移到迭代器对象。迭代器定义了一个用于访问集合元素并记录当前元素的接口。不同的迭代器可以执行不同的遍历策略。 提供一种方法顺序访问一个聚合对象中得各个元素,而又不需暴露该对象的内部表示。 ) 分类 外部迭代器:让客户端直接操作迭代过程,所以客户端需要知道外部迭代器才翻译 2017-02-15 10:14:54 · 541 阅读 · 0 评论 -
NSNotification
对象间信息传递的标准方式是消息,发送消息的对象要知道消息的接受者,是一对一发送的。在iOS系统下,通过广播机制来达到这个目的,对象向通知中心(NSNotificationCenter)投递一个通知,由通知中心将其收到的通知分发给“感兴趣”的接收者。通知中心的原理非常符合设计模式中的观察者(Observer)模式。 什么是Notification?这个要求其实也很容易实现. 每个运行中的applica原创 2016-04-27 15:44:58 · 310 阅读 · 0 评论 -
iOS中的MVC模式
iOS中的MVC(Model-View-Controller)将软件系统分为Model、View、Controller三部分Model: 你的应app本质上是什么,它能实现的功能是什么,它持有数据 Controller:处理Model和View之间的交互,主要负责将Model展示给用户(UI逻辑),一般是控制类 View:用户看到的,被Controller操纵着的,一般是UIView的子类Co原创 2016-10-28 08:45:12 · 399 阅读 · 0 评论 -
观察者模式
一.观察者模式介绍 二.在iOS中框架中使用观察者模式 在iOS中框架中使用观察者模式的有:Notification、KVO。1.Notification (1)A对B感兴趣,A就是观察者,B为主题也就是变化源 对于感兴趣的A来说,首先要订阅通知,即将自己添加为观察者(A是观察者,怎么观察的以及观察到了会做些什么) [[NSNotificationCenter defaultCenter]原创 2017-02-14 15:03:27 · 186 阅读 · 0 评论 -
UIControl介绍以及Target-Action机制
一、UIControl的介绍 UIControl是控件类的基类,它是一个抽象基类,我们不能直接使用UIControl类来实例化控件,它只是为控件子类定义一些通用的接口,并提供一些基础实现,以在事件发生时,预处理这些消息并将它们发送到指定目标对象上。 (1)它的子类有UIButton(按钮)、UIDatePicker(时间/日期选择器)、UIPageControl(分页控件)、UISegmente原创 2017-03-26 11:07:48 · 1688 阅读 · 0 评论