用协议来统一接口

简介:

用协议来统一接口

 

效果

 

源码

https://github.com/YouXianMing/ProtocolDesign



//
//  CellHeightProtocol.h
//  TableViewDemo
//
//  Created by YouXianMing on 15/6/17.
//  Copyright (c) 2015年 YouXianMing. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

/**
 *  请用一个值来维护并存储cell的高度
 */
@protocol CellHeightProtocol <NSObject>
@required
/**
 *  cell最终高度
 *
 *  @return 获取cell的最终高度
 */
- (CGFloat)cellHeight;

/**
 *  计算高度
 */
- (void)calculateTheHeight;


@end

说明

1. 协议与代理并不相同.

2. 协议可以统一接口,我们可以通过让对象继承协议来统一接口输出,加上与抽象父类配合,可以最大限度的做到高类聚,低耦合,提升你的代码逼格.

3. 用协议可以隐藏实现细节.提升代码可读性. 


目录
相关文章
|
机器学习/深度学习 虚拟化
|
11月前
|
JavaScript
VUE学习二:事件监听(v-on)、条件判断(v-if/v-else-if/v-else)、循环遍历(v-for)
这篇文章是关于Vue.js的学习指南,涵盖了事件监听、条件判断、循环遍历、数组方法响应性、案例分析以及高阶函数的使用。
178 2
VUE学习二:事件监听(v-on)、条件判断(v-if/v-else-if/v-else)、循环遍历(v-for)
|
算法
【图像】图像增强-降噪锐化
【图像】图像增强-降噪锐化
134 1
2023年电赛---运动目标控制与自动追踪系统(E题)OpenART mini的代码移植到OpenMV
2023年电赛---运动目标控制与自动追踪系统(E题)OpenART mini的代码移植到OpenMV
372 0
|
设计模式 Go
[设计模式 Go实现] 行为型~解释器模式
[设计模式 Go实现] 行为型~解释器模式
132 1
火山中文编程 -- 变量与常量
火山中文编程 -- 变量与常量
114 0
|
SQL NoSQL 关系型数据库
分布式事务Seata
分布式事务Seata
460 0
|
存储 安全 NoSQL
Java高性能序列化工具Kryo序列化
Java高性能序列化工具Kryo序列化
416 0
Java高性能序列化工具Kryo序列化
|
前端开发 IDE 程序员
【Vue3+Ts+Vite】使用Vite与TS构建Vue3项目
🔈今天学习一下如何初始化一个 Vue3 + Ts + Vite 的项目🔊与时俱进 开始用全新的技术。本文包含以下内容:基础框架的搭建,别名配置,vue-router配置,pinia配置,axios配置,ESLint配置。
1730 0
|
小程序
微信小程序:TypeError: Cannot read property ‘mark‘ of undefined
微信小程序:TypeError: Cannot read property ‘mark‘ of undefined
284 0
微信小程序:TypeError: Cannot read property ‘mark‘ of undefined