1. iOS程序源代码下载链接:03-代理设计模式.zip
    28.3 KB
  2. // main.m

  3. //
  4. //  main.m
  5. //  03-代理设计模式
  6. //
  7. //  Created by apple on 13-11-27.
  8. //  Copyright (c) 2013年itcast. All rights reserved.
  9. //
  10. #import<Foundation/Foundation.h>
  11. #import"Baby.h"
  12. //#import "Student.h"
  13. #import"Dog.h"
  14. int main(int argc,const char* argv[])
  15. {
  16.    @autoreleasepool{
  17.        // 1.学生
  18. //        Nurse *nurse = [[Nurse alloc] init];
  19. //        Teacher *teacher = [[Teacher alloc] init];
  20. //        Student *stu = [[Student alloc] init];
  21.        // 2.婴儿
  22.         Baby *b = [[Baby alloc] init];
  23.         b.age =1;
  24. //        b.baomu = stu;
  25.         b.baomu = [[Dog alloc] init];
  26.          [b sleep];
  27.     }
  28.    return 0;
  29. }
  30. // Baby.h

  31. //
  32. //  Baby.h
  33. //  03-代理设计模式
  34. //
  35. //  Created by apple on 13-11-27.
  36. //  Copyright (c) 2013年itcast. All rights reserved.
  37. //
  38. #import<Foundation/Foundation.h>
  39. #import"BabyBaomuXieyi.h"
  40. @interface Baby : NSObject
  41. @property(nonatomic,strong) id<BabyBaomuXieyi> baomu;//任何人都能做保姆
  42. @property(nonatomic,assign)int age;//年龄
  43. - (void)hungry;//饿了
  44. - (void)cry;//哭了
  45. - (void)sleep;//想睡觉
  46. @end
  47. // Baby.m

  48. //
  49. //  Baby.m
  50. //  03-代理设计模式
  51. //
  52. //  Created by apple on 13-11-27.
  53. //  Copyright (c) 2013年itcast. All rights reserved.
  54. //
  55. #import"Baby.h"
  56. @implementation Baby
  57. - (void)cry
  58. {
  59.     NSLog(@"%d岁的baby哭了", _age);
  60.    //转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3493396.html
  61.    //通知保姆(护士)
  62.     [_baomu babyCry:self];
  63. }
  64. - (void)sleep
  65. {
  66.     NSLog(@"%d岁的baby想睡觉", _age);
  67.   //转载请注明出处--本文永久链接:http://www.cnblogs.com/ChenYilong/p/3493396.html 
  68.    //通知保姆
  69.     [_baomu babySleep:self];
  70. }
  71. - (void)hungry
  72. {
  73.     NSLog(@"%d岁的baby想吃东西", _age);
  74.    
  75.    //通知保姆
  76.     [_baomu babyHungry:self];
  77. }
  78. @end
  79. // Dog.h

  80. //
  81. //  Dog.h
  82. //  03-代理设计模式
  83. //
  84. //  Created by apple on 13-11-27.
  85. //  Copyright (c) 2013年itcast. All rights reserved.
  86. //
  87. #import<Foundation/Foundation.h>
  88. #import"BabyBaomuXieyi.h"
  89. @interface Dog : NSObject <BabyBaomuXieyi>
  90. @end
  91. // Dog.m

  92. //
  93. //  Dog.m
  94. //  03-代理设计模式
  95. //
  96. //  Created by apple on 13-11-27.
  97. //  Copyright (c) 2013年itcast. All rights reserved.
  98. //
  99. #import"Dog.h"
  100. #import"Baby.h"
  101. @implementation Dog
  102. - (void)babyCry:(Baby *)baby
  103. {
  104.     NSLog(@"狗正在安慰%d岁的baby", baby.age);
  105. }
  106. - (void)babyHungry:(Baby *)baby
  107. {
  108.     NSLog(@"狗喂%d岁的baby吃东西", baby.age);
  109. }
  110. - (void)babySleep:(Baby *)baby
  111. {
  112.     NSLog(@"狗哄%d岁的baby去睡觉", baby.age);
  113. }
  114. @end
  115. // Nurse.h

  116. //
  117. //  Nurse.h
  118. //  03-代理设计模式
  119. //
  120. //  Created by apple on 13-11-27.
  121. //  Copyright (c) 2013年itcast. All rights reserved.
  122. //
  123. #import<Foundation/Foundation.h>
  124. @class Baby;
  125. @interface Nurse : NSObject
  126. - (void)babyCry:(Baby *)baby;
  127. - (void)babySleep:(Baby *)baby;
  128. - (void)babyHungry:(Baby *)baby;
  129. @end
  130. // Nurse.m

  131. //
  132. //  Nurse.m
  133. //  03-代理设计模式
  134. //
  135. //  Created by apple on 13-11-27.
  136. //  Copyright (c) 2013年itcast. All rights reserved.
  137. //
  138. #import"Nurse.h"
  139. #import"Baby.h"
  140. @implementation Nurse
  141. - (void)babyCry:(Baby *)baby
  142. {
  143.     NSLog(@"护士正在安慰%d岁的baby", baby.age);
  144. }
  145. - (void)babyHungry:(Baby *)baby
  146. {
  147.     NSLog(@"护士喂%d岁的baby吃东西", baby.age);
  148. }
  149. - (void)babySleep:(Baby *)baby
  150. {
  151.     NSLog(@"护士哄%d岁的baby去睡觉", baby.age);
  152. }
  153. @end

 

https://www.evernote.com/shard/s227/sh/ad26c268-cd1e-463a-a093-bbe84802abf8/f452d3af63abdc7066cab8571c3e9c50

代理设计模式iOS开发Demo(示例程序)源代码的更多相关文章

  1. 03.WebView演练-iOS开发Demo(示例程序)源代码

    技术博客http://www.cnblogs.com/ChenYilong/   新浪微博http://weibo.com/luohanchenyilong   //转载请注明出处--本文永久链接:h ...

  2. iOS多线程 iOS开发Demo(示例程序)源代码

    本系列所有开发文档翻译链接地址:iOS7开发-Apple苹果iPhone开发Xcode官方文档翻译PDF下载地址(2013年12月29日更新版)   iOS程序源代码下载链接:01.大任务.zip22 ...

  3. 01-QQ 3-最终重构版 Demo示例程序源代码

      源代码下载链接:01-QQ 3.zip292.5 KB // QQAppDelegate.h Map // //  QQAppDelegate.h //  01-QQ // //  Created ...

  4. 01-导航实例-QQ空间Demo示例程序源代码

    01-导航实例-QQ空间.zip62.4 KB // MJLoginViewController.h Map // //  MJLoginViewController.h //  01-导航实例-QQ ...

  5. 01-modal Demo示例程序源代码

    源代码下载链接:01-modal.zip37.8 KB // MJAppDelegate.h // //  MJAppDelegate.h //  01-modal // //  Created by ...

  6. 02-更改窗口的根控制器 Demo示例程序源代码

      源代码下载链接:02-更改窗口的根控制器.zip18.0 KB // MJAppDelegate.h // //  MJAppDelegate.h //  02-更改窗口的根控制器 // //  ...

  7. 归档普通对象Demo示例程序源代码

    源代码下载链接:06-归档普通对象.zip34.2 KB // MJPerson.h // //  MJPerson.h //  06-归档普通对象 // //  Created by apple o ...

  8. iOS开发UI篇—程序启动原理和UIApplication

    iOS开发UI篇—程序启动原理和UIApplication   一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就 ...

  9. iOS开发UI篇—程序启动原理和UIApplication1

    iOS开发UI篇—程序启动原理和UIApplication   一.UIApplication 1.简单介绍 (1)UIApplication对象是应用程序的象征,一个UIApplication对象就 ...

随机推荐

  1. ServletContext域对象

    场景:假设某个web服务,有两个servlet分别是servlet1和servlet2,servlet1要传参数name=zhangsan传送给servlet2,传统方法如下: servlet1端:用 ...

  2. 理解windows模型

    同步 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回.按照这个定义,其实绝大多数函数都是同步调用(例如sin, isdigit等).但是一般而言,我们在说同步.异步的时候,特指 ...

  3. SQL SERVER技术内幕之6 集合查询

    1.定义 集合运算会对两个输入查询的结果集进行逐行比较,根据比较结果和所使用的集合运算来确定某一行是否应该包含在集合运算的结果中.因为集合运算是针对集合之间进行的计算,所以集合运算涉及的两个查询不能包 ...

  4. React Components Template

    React Components Template "use strict"; /** * * @author xgqfrms * @license MIT * @copyrigh ...

  5. JSON字符串书写

      { "XXX公司": [ { "name": "IT部", "mebers": [ { "维护人员&quo ...

  6. 第22天:js改变样式效果

    一.输出语句 1.alert:弹出警示框(用的非常少,用户体验不好)完整写法:window.alert(“执行语句”):window对象,窗口,一般情况可省略alert(123); 2.console ...

  7. BZOJ 1095 捉迷藏(线段树维护括号序列)

    对于树的一个括号序列,树上两点的距离就是在括号序列中两点之间的括号匹配完之后的括号数... 由此可以得出线段树的做法.. #include<cstdio> #include<iost ...

  8. BZOJ4709 JSOI2011柠檬(动态规划)

    首先要冷静下来发现这仅仅是在划分区间.显然若有相邻的数字相同应当划分在同一区间.还有一个显然的性质是区间的两端点应该相同且选择的就是端点的数.瞬间暴力dp就变成常数极小100002了.可以继续斜率优化 ...

  9. linux 文件检索操作

    linux命令太多了,作为一个后端开发人员,常用的也就这几个 uname -a 查看版本 tail tail -f /data/wealth-consignment-service/logs/stat ...

  10. cloneNode与事件拷贝

    用法: var newNode = oldNode.cloneNode(deep); //deep,布尔值,若为true,则克隆oldNode及其子节点,否则只克隆oldNode本身 关于复制事件 1 ...