ios – 面向协议的编程

当我们将面向对象编程转换为面向协议编程时,如何进行以下操作?

假设我有一个代表Model的JSON对象有{created_time,updated_time,type,…},这些值在5个Model对象中很常见.

是否正确使协议包含以下所有属性,如下所示

protocol xxx {
   var type : String { get }
   var updatedTime : String { get }
   var createdTime : String { get }
   //...//
}

然后所有5个结构符合该协议

解决方法

我会说这是一个非常好的解决方案.另一种选择是拥有一个具有这些属性的基类,并且所有这五个模型都继承自基类,但没有特别的理由在这里使用继承.

协议只是一个“合同”,保证一个类具有某些属性或行为.对我来说,这里的例子非常“契约”.

相比之下,继承意味着“是一个”关系(例如福特是一辆汽车).对我来说,这感觉更像是合同而不是“是一个”的情况.当然,这两种选择都不对,但认为你的协议想法很好.

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...