zoukankan      html  css  js  c++  java
  • Swift观察者模式

    用swift写一个观察者模式,集合了swift语言中类,数组,协议,方法,字符串,条件控制语句等一些语法。
    简单介绍下观察者模式,在观察者模式中,会改变的是主题的状态以及观察者的数目。用这个模式,可以改变依赖于主题状态的对象,去不必改变主题。

    //main.swift
    //Observer(观察者模式)
    //Created by jy on 15/4/26.
    //Copyright (c) 2015年 jy. All rights reserved.
     
    import Foundation
    //观察者模式中,会改变的是主题的状态以及观察者的数目。用这个模式,可以改变依赖于主题状态的对象,去不必改变主题。
    //主题和观察者都使用协议:观察者利用主题的协议向主题注册,而主题利用观察者协议(接口)通知观察者。这样可以让两者运作正常,又同时具有松耦合的特点
    //定义协议,观察者要实现的
    protocol Observerable{
        func update();
    }
    //观察者实现协议
    class Subscriber : Observerable{
        //定义属性状态
        func update() {
            println("Callback")
        }
    }
    /**
    * 主题
    */
    class Paper{
        //定义空数组
        var observers = Array<Subscriber>()
        //注册观察者
        func register(sub:Subscriber){
            self.observers.append(sub)
        }
        //外部统一访问
        func trigger(){
            var count = self.observers.count;
            //判断是否注册为空
            if count != 0 {
                for obs in self.observers {
                    //通知
                    obs.update()
                }
            }
        }
    }
    var paper = Paper()
    //观察者
    var sub1 = Subscriber()
    var sub2 = Subscriber()
    //注册
    paper.register(sub1)
    paper.register(sub2)
    paper.trigger()
  • 相关阅读:
    虚函数
    类的继承
    析构
    构造
    枚举类型
    c++中的静态类型 static
    c++中的类
    sizeof和strlen的区别
    剑指36 二叉搜索书与双向链表
    剑指35 复杂链表的复制
  • 原文地址:https://www.cnblogs.com/Free-Thinker/p/5090867.html
Copyright © 2011-2022 走看看