社区
iOS
帖子详情
在iOS项目不用代理的情况下,还用创建@protocol类去抽象出方法吗,就像java中的interface一样
伴得白马啸西风
2017-04-19 04:36:39
感觉java中的interface和oc中的@protocol很像,但我看了几个iOS 项目都没有用@protocol抽象出方法,他们说协议是和代理一起用的。我想问下,不用代理的情况下就不用创建@protocol类了吗
...全文
253
3
打赏
收藏
在iOS项目不用代理的情况下,还用创建@protocol类去抽象出方法吗,就像java中的interface一样
感觉java中的interface和oc中的@protocol很像,但我看了几个iOS 项目都没有用@protocol抽象出方法,他们说协议是和代理一起用的。我想问下,不用代理的情况下就不用创建@protocol类了吗
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Mr_yawn
2017-04-24
打赏
举报
回复
为了统一接口
伴得白马啸西风
2017-04-19
打赏
举报
回复
既然Protocol不关心实现,为什么要定义这套共用接口呢?是为了规范方法名吗
scribbler
2017-04-19
打赏
举报
回复
OC不支持多继承,很多时候都是用Protocol来代替。 Protocol定义公用的一套接口,但不能提供具体的实现方法。换句话说,它只告诉你要做什么,但具体怎么做,它不关心。
OBJECTIVE-C编程之道
IOS
设计模式解析电子书+源代码
OBJECTIVE-C编程之道
IOS
设计模式解析电子书+源代码 《Objective-C编程之道:
iOS
设计模式解析》是基于
iOS
的软件开发指南。书
中
应用GoF的经典设计模式,介绍了如何在代码
中
应用
创建
型模式、结构型模式和行为模式,如何设计模式以巩固应用程序,并通过设计模式实例介绍MVC在CocoaTouch框架
中
的工作方式。 《Objective-C编程之道:
iOS
设计模式解析》适用于那些已经具备Objective-C基础、想利用设计模式来提高软件开发效率的
中
高级
iOS
开发人员。 第一部分 设计模式初体验 第1章 你好,设计模式 1.1 这是一本什么书 1.2 开始前的准备 1.3 预备知识 1.4 似曾相识的设计 1.5 设计模式的起源——模型、视图和控制器 1.5.1 在模型对象
中
封装数据和基本行为 1.5.2 使用视图对象向用户展示信息 1.5.3 用控制器对象联系起模型和视图 1.5.4 作为复合设计模式的MVC 1.6 影响设计的几个问题 1.6.1 针对接口编程,而不是针对实现编程 1.6.2
@protocol
与
抽象
基类 1.6.3 对象组合与类继承 1.7 本书用到的对象和类 1.7.1 类图 1.7.2 对象图 1.8 本书如何安排模式的讲解 1.9 总结 第2章 案例分析:设计一个应用程序 2.1 想法的概念化 2.2 界面外观的设计 2.3 架构设计 2.3.1 视图管理 2.3.2 如何表现涂鸦 2.3.3 如何表现保存的涂鸦图 2.3.4 用户操作 2.4 所用设计模式的回顾 2.5 总结 第二部分 对象
创建
第3章 原型 3.1 何为原型模式 3.2 何时使用原型模式 3.3 浅复制与深复制 3.4 使用Cocoa Touch框架
中
的对象复制 3.5 为Mark聚合体实现复制
方法
3.6 将复制的Mark用作“图样模板” 3.7 总结 第4章 工厂
方法
4.1 何为工厂
方法
模式 4.2 何时使用工厂
方法
4.3 为何这是
创建
对象的安全
方法
4.4 在TouchPainter
中
生成不同画布 4.5 在Cocoa Touch框架
中
应用工厂
方法
4.6 总结 第5章
抽象
工厂 5.1 把
抽象
工厂应用到TouchPainter应用程序 5.2 在Cocoa Touch框架
中
使用
抽象
工厂 5.3 总结 第6章 生成器 6.1 何为生成器模式 6.2 何时使用生成器模式 6.3 构建追逐游戏
中
的角色 6.4 总结 第7章 单例 7.1 何为单例模式 7.2 何时使用单例模式 7.3 在Objective-C
中
实现单例模式 7.4 子类化Singleton 7.5 线程安全 7.6 在Cocoa Touch框架
中
使用单例模式 7.6.1 使用UIApplication类 7.6.2 使用UIAccelerometer类 7.6.3 使用NSFileManager类 7.7 总结 第三部分 接口适配 第8章 适配器 8.1 何为适配器模式 8.2 何时使用适配器模式 8.3 委托 8.4 用Objective-C协议实现适配器模式 8.5 用Objective-C的块在
iOS
4
中
实现适配器模式 8.5.1 块引用的声明 8.5.2 块的
创建
8.5.3 把块用作适配器 8.6 总结 第9章 桥接 9.1 何为桥接模式 9.2 何时使用桥接模式 9.3
创建
iOS
版虚拟仿真器 9.4 总结 第10章 外观 10.1 何为外观模式 10.2 何时使用外观模式 10.3 为子系统的一组接口提供简化的接口 10.4 在TouchPainter应用程序
中
使用外观模式 10.5 总结 第四部分 对象去耦 第11章
中
介者 11.1 何为
中
介者模式 11.2 何时使用
中
介者模式 11.3 管理TouchPainter应用程序
中
的视图迁移 11.3.1 修改迁移逻辑的困难 11.3.2 集
中
管理UI交通 11.3.3 在
Interface
Builder
中
使用CoordinatingController 11.4 总结 第12章 观察者 12.1 何为观察者模式 12.2 何时使用观察者模式 12.3 在模型-视图-控制器
中
使用观察者模式 12.4 在Cocoa Touch框架
中
使用观察者模式 12.4.1 通知 12.4.2 键-值观察 12.5 在TouchPainter
中
更新CanvasView上的线条 12.6 总结 第五部分
抽象
集合 第13章 组合 13.1 何为组合模式 13.2 何时使用组合模式 13.3 理解TouchPainter
中
Mark的使用 13.4 在Cocoa Touch框架
中
使用组合模式 13.5 总结 第14章 迭代器 14.1 何为迭代器模式 14.2 何时使用迭代器模式 14.3 在Cocoa Touch框架
中
使用迭代器模式 14.3.1 NSEnumerator 14.3.2 基于块的枚举 14.3.3 快速枚举 14.3.4 内部枚举 14.4 遍历Scribble的顶点 14.5 总结 第六部分 行为扩展 第15章 访问者 15.1 何为访问者模式 15.2 何时使用访问者模式 15.3 用访问者绘制TouchPainter
中
的Mark 15.4 访问者的其他用途 15.5 能不能用范畴代替访问者模式 15.6 总结 第16章 装饰 16.1 何为装饰模式 16.2 何时使用装饰模式 16.3 改变对象的“外表”和“内容” 16.4 为UIImage
创建
图像滤镜 16.4.1 通过真正的子类实现装饰 16.4.2 通过范畴实现装饰 16.5 总结 第17章 责任链 17.1 何为责任链模式 17.2 何时使用责任链模式 17.3 在RPG游戏
中
使用责任链模式 17.4 总结 第七部分 算法封装 第18章 模板
方法
18.1 何为模板
方法
模式 18.2 何时使用模板
方法
18.3 利用模板
方法
制作三明治 18.4 保证模板
方法
正常工作 18.5 向模板
方法
增加额外的步骤 18.6 在Cocoa Touch框架
中
使用模板
方法
18.6.1 UIView类
中
的定制绘图 18.6.2 Cocoa Touch框架
中
的其他模板
方法
实现 18.7 总结 第19章 策略 19.1 何为策略模式 19.2 何时使用策略模式 19.3 在UITextField
中
应用验证策略 19.4 总结 第20章 命令 20.1 何为命令模式 20.2 何时使用命令模式 20.3 在Cocoa Touch框架
中
使用命令模式 20.3.1 NSInvocation对象 20.3.2 NSUndoManager 20.4 在TouchPainter
中
实现撤销与恢复 20.4.1 使用NSUndoManager实现绘图与撤销绘图 20.4.2 自制绘图与撤销绘图的基础设施 20.4.3 允许用户触发撤销与恢复 20.5 命令还能做什么 20.6 总结 第八部分 性能与对象访问 第21章 享元 21.1 何为享元模式 21.2 何时使用享元模式 21.3
创建
百花池 21.4 总结 第22章
代理
22.1 何为
代理
模式 22.2 何时使用
代理
模式 22.3 用虚拟
代理
懒加载图像 22.4 在Cocoa Touch框架
中
使用
代理
模式 22.5 总结 第九部分 对象状态 第23章 备忘录 23.1 何为备忘录模式 23.2 何时使用备忘录模式 23.3 在TouchPainter
中
使用备忘录模式 23.3.1 涂鸦图的保存 23.3.2 涂鸦图的恢复 23.3.3 ScribbleMemento的设计与实现 23.4 Cocoa Touch框架
中
的备忘录模式 23.5 总结
iOS
模拟
JAVA
抽象
类
抽象
工厂
方法
JAVA
接口 和
iOS
的协议 大差不差。 先定义一个协议
@protocol
Quackable NSObject> @required -(void)quack; @end 然后我们定义一个
抽象
类! #import "Quackable.h" @
interface
AbstractDuckFactory : NSObjectQuackable> //
抽象
类
iOS
开发从入门到精通 [2023版]
【课程特点】 学习
iOS
开发,请选本套课程,理由如下: 1、233节大容量课程:包含了
iOS
开发
中
的大部分实用技能; 2、创新的教学模式:手把手教您
iOS
开发技术,一看就懂,一学就会; 3、贴心的操作提示:让您的眼睛...
iOS
代码重构之提高类的接口
抽象
能力
今天看到《代码大全第二版》里面对ADT及类
抽象
能力的描述让我受益匪浅,查看我们的
iOS
项目
,马上就找到了这样的坏味道(不良好的类接口设计),下面就分享一下我的改进
方法
。(这里的类名做了修改,并非实际
项目
中
的类名) 改进前: 这是一个自定义单元格类:
@protocol
CustomCellDeletage <NSObject> - (void)checkDidTouch:(C...
iOS
的动态
代理
模式的实现
动态
代理
模式的应用很多,特别是在不能修改被
代理
类的前提下,要对执行某些
方法
时需要打log或者捕捉异常等处理时,是一个非常方便的
方法
。只需要少量修改客户端(场景类)代码和添加一个
代理
类就可以实现,这个符合Open-Close Principle。 在
Java
和.Net
中
的AOP也是利用了这种
代理
模式的实现。
iOS
实现的代码如下: 首先,定义一个接口,
@protocol
...
iOS
29,031
社区成员
12,466
社区内容
发帖
与我相关
我的任务
iOS
主要讨论与iOS相关的软件和技术
复制链接
扫一扫
分享
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章