标签:
用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() |
标签:
原文地址:http://www.cnblogs.com/Free-Thinker/p/5090867.html