代理设计模式iOS开发Demo(示例程序)源代码
2013-12-27 01:05
405 查看
iOS程序源代码下载链接:
03-代理设计模式.zip
28.3 KB
// main.m |
// main.m
// 03-代理设计模式
//
// Created by apple on 13-11-27.
// Copyright (c) 2013年itcast. All rights reserved.
//
#import<Foundation/Foundation.h>
#import"Baby.h"
//#import "Student.h"
#import"Dog.h"
int main(int argc,const char* argv[])
{
@autoreleasepool{
// 1.学生
// Nurse *nurse = [[Nurse alloc] init];
// Teacher *teacher = [[Teacher alloc] init];
// Student *stu = [[Student alloc] init];
// 2.婴儿
Baby *b = [[Baby alloc] init];
b.age =1;
// b.baomu = stu;
b.baomu = [[Dog alloc] init];
[b sleep];
}
return 0;
}
// Baby.h |
// Baby.h
// 03-代理设计模式
//
// Created by apple on 13-11-27.
// Copyright (c) 2013年itcast. All rights reserved.
//
#import<Foundation/Foundation.h>
#import"BabyBaomuXieyi.h"
@interface Baby : NSObject
@property(nonatomic,strong) id<BabyBaomuXieyi> baomu;//任何人都能做保姆
@property(nonatomic,assign)int age;//年龄
- (void)hungry;//饿了
- (void)cry;//哭了
- (void)sleep;//想睡觉
@end
// Baby.m |
// Baby.m
// 03-代理设计模式
//
// Created by apple on 13-11-27.
// Copyright (c) 2013年itcast. All rights reserved.
//
#import"Baby.h"
@implementation Baby
- (void)cry
{
NSLog(@"%d岁的baby哭了", _age);
//转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3493396.html
//通知保姆(护士)
[_baomu babyCry:self];
}
- (void)sleep
{
NSLog(@"%d岁的baby想睡觉", _age);
//转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3493396.html
//通知保姆
[_baomu babySleep:self];
}
- (void)hungry
{
NSLog(@"%d岁的baby想吃东西", _age);
//通知保姆
[_baomu babyHungry:self];
}
@end
// Dog.h |
// Dog.h
// 03-代理设计模式
//
// Created by apple on 13-11-27.
// Copyright (c) 2013年itcast. All rights reserved.
//
#import<Foundation/Foundation.h>
#import"BabyBaomuXieyi.h"
@interface Dog : NSObject <BabyBaomuXieyi>
@end
// Dog.m |
// Dog.m
// 03-代理设计模式
//
// Created by apple on 13-11-27.
// Copyright (c) 2013年itcast. All rights reserved.
//
#import"Dog.h"
#import"Baby.h"
@implementation Dog
- (void)babyCry:(Baby *)baby
{
NSLog(@"狗正在安慰%d岁的baby", baby.age);
}
- (void)babyHungry:(Baby *)baby
{
NSLog(@"狗喂%d岁的baby吃东西", baby.age);
}
- (void)babySleep:(Baby *)baby
{
NSLog(@"狗哄%d岁的baby去睡觉", baby.age);
}
@end
// Nurse.h |
// Nurse.h
// 03-代理设计模式
//
// Created by apple on 13-11-27.
// Copyright (c) 2013年itcast. All rights reserved.
//
#import<Foundation/Foundation.h>
@class Baby;
@interface Nurse : NSObject
- (void)babyCry:(Baby *)baby;
- (void)babySleep:(Baby *)baby;
- (void)babyHungry:(Baby *)baby;
@end
// Nurse.m |
// Nurse.m
// 03-代理设计模式
//
// Created by apple on 13-11-27.
// Copyright (c) 2013年itcast. All rights reserved.
//
#import"Nurse.h"
#import"Baby.h"
@implementation Nurse
- (void)babyCry:(Baby *)baby
{
NSLog(@"护士正在安慰%d岁的baby", baby.age);
}
- (void)babyHungry:(Baby *)baby
{
NSLog(@"护士喂%d岁的baby吃东西", baby.age);
}
- (void)babySleep:(Baby *)baby
{
NSLog(@"护士哄%d岁的baby去睡觉", baby.age);
}
@end
https://www.evernote.com/shard/s227/sh/ad26c268-cd1e-463a-a093-bbe84802abf8/f452d3af63abdc7066cab8571c3e9c50
相关文章推荐
- IOS图片上传 ASI
- 上传一个以前写 圆圈滚动的view 的效果类 ios
- IOS开发缓存机制之—内存缓存机制
- protobuf-IOS简单总结(编译、环境搭建)
- IOS 中使用 POST请求与GET请求的区别
- iOS学习笔记——表视图四(分组分区)
- iOS学习笔记——表视图三(搜索)
- IOS 之 开发的一些小技巧
- 无限互联ios视频
- IOS开发日志记录 - 推送
- IOS开发日志记录 - 尺寸
- IOS开发之----Xcode非ARC项目中设置部分文件ARC支持
- 分析nagios插件 参数和服务的关系
- iOS项目中兼容ARC与非ARC的一些宏定义
- [iOS开发]内存管理中的命名规则
- csdn 第二天 在ios 实现搜索二叉树
- IOS百度地图开发系列-百度地图不能正常显示
- IOS中如何解析并显示Gif
- 预告 ARC 重写:iOS 实现的 json 数据源的 O-R Mapping
- ios Icon和Default的尺寸