ios大话 观察者模式(Observer)
来源:互联网 发布:深入理解java反射机制 编辑:程序博客网 时间:2024/06/13 12:22
观察者模式(Observer),定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
就像这个图所示
定义抽象通知者
Subject
@interface HCDSubject : NSObject//这里很不合理,不知怎么办//@property(nonatomic,readwrite,strong)NSMutableArray *observerList;-(void)attach:(id<HCDObserver>)observer;-(void)detach:(id<HCDObserver>)observer;-(void)notify;-(NSArray *)getobserverList;@end
讲解:
需要传入通知对象股票观察者 nba观察者
这两个观察者抽象为抽象观察者接口 ,他们之前通过继承实现相互的关系
抽象观察者 我们定义成协议即可实现约束接口
@protocol Observer <NSObject>@optional-(void)update;@end
NBA观察者
#import "Observer.h"@interface NBAObserver :NSObject<Observer>@end#import "NBAObserver.h"@implementation NBAObserver-(void)update{ NSLog(@"擦,老板回来了,待会儿继续看NBA");}@end
Stock观察者
#import "StockObserver.h"@implementation StockObserver-(void)update{ NSLog(@"操。。老板回来了,带会儿再看");}//// HCDSubject.m// 9观察者模式//// Created by yifan on 15/8/13.// Copyright (c) 2015年 黄成都. All rights reserved.//#import "HCDSubject.h"@interface HCDSubject ()@property(nonatomic,readwrite,strong)NSMutableArray *observerList;@end@implementation HCDSubject-(instancetype)init{ self = [super init]; if (self) { _observerList = [NSMutableArray array]; } return self;}-(void)attach:(id<HCDObserver>)observer{ [self.observerList addObject:observer];}-(void)detach:(id<HCDObserver>)observer{ for (id<HCDObserver> currentObserver in [self getobserverList]) { if (currentObserver == observer) { [self.observerList removeObject:observer]; } }}-(NSMutableArray *)getobserverList{ return [NSMutableArray arrayWithArray:self.observerList];}-(void)notify{}@end
0 0
- ios大话 观察者模式(Observer)
- 观察者模式(OBSERVER)
- 观察者(Observer)模式
- 观察者(Observer)模式
- 观察者(Observer)模式
- 观察者(Observer)模式
- 观察者模式(Observer)
- 观察者模式(Observer)
- Observer(观察者)模式
- 观察者模式(Observer)
- Observer(观察者模式)
- 观察者模式(Observer)
- 观察者模式(Observer)
- 观察者模式(Observer)
- 观察者模式(Observer)
- 观察者模式(Observer)
- 观察者(Observer)模式
- 观察者模式(Observer)
- 机房收费系统之Sub Main
- Java技术回顾之JDBC:JDBC的事务支持
- HDU5875-Function
- LIstView中中SimpleAdapter的getView与listview的onitemclick不共存的问题
- 调试,虚拟环境检测试的一些新想法
- ios大话 观察者模式(Observer)
- ls命令常用方法
- POJ 1679 The Unique MST
- 操作系统
- 浮点数之坑
- 排序函数模板
- 论文笔记 UberNet : Training a ‘Universal’ Convolutional Neural Network
- μc/os 系统学习-任务2
- Spark RDD编程(二)