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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 公司不小心外发邮件怎么办 steam账号被盗邮箱被改怎么办 steam被盗绑定邮箱被改怎么办 简历邮件发错了怎么办 发了简历不回复怎么办 发了简历没回复怎么办 发了简历邮件没有回复怎么办 快手绑定的手机号不用了怎么办 绑定银行卡的手机号不用了怎么办 oppo账号密码忘了怎么办 魅族账号密码忘了怎么办 苹果手机账号密码忘了怎么办 oppo手机账号密码忘了怎么办 华为手机账号密码忘了怎么办 vivo手机账号密码忘了怎么办 金立s9密码忘了怎么办 手机密号忘了怎么办 qq号忘了账号怎么办 推特密码忘了怎么办 沃邮箱改密码短信延迟怎么办 被qq好友拉黑了怎么办 网易邮箱字体变小了怎么办 邮箱注册不了全拼怎么办 家用电器接入两相火线后怎么办 手机充电板坏了怎么办 闪电宝商户乱跳怎么办 网易邮箱发错了怎么办 苹果手机邮件无法连接服务器怎么办 好记星平板电脑开不了机怎么办 邮箱里的文件过期了怎么办 小米手机邮件发不了怎么办 有人加我qq邮箱怎么办 文件太大发邮件太慢怎么办 爱又米发信息怎么办 手机上电子邮件己停止运行怎么办 苹果电子邮件密码忘了怎么办 玩游戏时电脑烫怎么办 qq邮箱独立密码忘记了怎么办 qq邮箱中转站容量不足怎么办 qq邮箱忘记密码了怎么办 qq邮箱超大附件过期怎么办