博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式IOS篇-第二章:委托模式
阅读量:5068 次
发布时间:2019-06-12

本文共 1454 字,大约阅读时间需要 4 分钟。

委托模式从设计模式中的装饰模式,适配器模式,模板方法模式演变过来

现在来看看IOS版的是怎样的,先说说一个场景:

现在有一家公司,他们接到一个项目,项目的(Project),项目需要有一些懂Java的程序员来编写Java,意思就是委托一些Java程序员去完成这个项目(JavaProgrammerProtocol)

 

下面这段代码就像是一个Java工程师的委托书,谁继承了,表示谁有这个资格编写Java(调用writingJava方法)

//Java委托,如果这个委托有另外一个类可以写到另外一个类,如果没有可以跟随在一些类里面@protocol JavaProgrammerProtocol@required-(void)writingJava;@end

 

 

下面这部分代表有一个项目,是要编写Java的人(继承JavaProtocol)的类,当某程序员承认为会JAVA的人,就必须告知自己将会为这个项目编写Java部分(必须在实例化后,设定javaProtocol的委托者)

//Project.h文件内容#import 
@interface Project : NSObject@property(nonatomic)id
javaProtocol;-(void)projectStart;@end//Project.m文件内容#import "Project.h"@implementation Project-(void)projectStart{ if (self.javaProtocol != nil) { [self.javaProtocol writingJava]; }}@end

 

下面为编程者,一个懂Java编程的人(JavaProgrammerProtocol)

//Programmer.h文件内容#import 
#import "Project.h"@interface Programmer : NSObject
@end//Programmer.m文件内容#import "Programmer.h"@implementation Programmer-(id)init{ self = [super init]; if(self){ //这里接到了项目后,设定自己(self)将会为这个项目编写Java(设定项目的委托者) Project *project = [[Project alloc]init]; project.javaProtocol = self; //当项目运行的时候(调用projectStart方法),方法会执行调用委托者的writingJava方法 [project projectStart]; } return self;}//由Project调用-(void)writingJava{ NSLog(@"Start to writing Java");}@end

 

最好,这个代码会调用writingJava方法,打印出"Start to writing Java"字样。

 

转载于:https://www.cnblogs.com/oscar1987121/p/5236356.html

你可能感兴趣的文章
一道算法面试题(Lowerest Common Ancestor) 的几种解法
查看>>
数组的逆序出输出、查找一个元素
查看>>
Construct Binary Tree from Preorder and Inorder Traversal -- LeetCode
查看>>
【慢慢学Android】:4.Service的开机启动
查看>>
笔记--Day2--python基础2
查看>>
Vue,品牌列表案例(仅添加)
查看>>
数学(概率)CodeForces 626D:Jerry's Protest
查看>>
并发编程 19—— 显式的Conditon 对象
查看>>
软件测试必看的5本
查看>>
程序员必备的600单词
查看>>
hipster
查看>>
java:POI导出excel
查看>>
Web开发感悟:数据绑定是一种技术,更是一门艺术
查看>>
删除标题和边框
查看>>
JAVA第九次作业
查看>>
字符串反转,如将 '12345678' 变成 '87654321'
查看>>
Docker 安装 PHP+Nginx
查看>>
(转)MySQL排序原理与案例分析
查看>>
Miller-Rabin素数测试算法(POJ1811Prime Test)
查看>>
子路由配置
查看>>