--- 两个父子关系的抽象类
比如, 我有一个 XXXViewController 以及一个 EditableXXXViewController. 显然 XXXViewController 为 EditableXXXViewController 的父类. XXXViewController 只能显示数据, 但是 EditableXXXViewController 在其父类的基础上除了显示, 还可以编辑数据, 例如添加, 删除等.
当继承 XXXViewController 时, 必须实现的方法有 configureXXX.
而 EditableXXXViewController 必须实现的方法有 configureNewXXX, 以及其父类的 configureXXX.
--- 我想到的解决办法(A, B 为不同方法)
A. 每个类需要其子类实现的 **所有** 方法以及属性放入一个 Protocol, 类本身遵循这个 Protocol, 并且提供这些方法的空实现.
B. 将这些需要实现的方法和属性放入一个 Delegate 中, 同上, Delegate 用一个 Protocol 阐明 **所有** 方法和属性.
* 所有: 也就是说, 子类的 Protocol 实际上并不继承父类的 Protocol, 但 Protocol 包含父类需要实现的方法. (或许这不是一个好的解决方案)
--- TL;DR
困扰我的就是如何能让用 EditableXXXViewController 的人不用走弯路就知道需要实现它的父类方法?
----
初学 Objective-C, 还不是太了解 Objective-C 的设计方法. 所以这个问题或许不是接口设计的问题, 也可能是本身两个类设计的问题.
各位有任何建议都可以提出来, 谢谢. 回复必谢. :D
比如, 我有一个 XXXViewController 以及一个 EditableXXXViewController. 显然 XXXViewController 为 EditableXXXViewController 的父类. XXXViewController 只能显示数据, 但是 EditableXXXViewController 在其父类的基础上除了显示, 还可以编辑数据, 例如添加, 删除等.
当继承 XXXViewController 时, 必须实现的方法有 configureXXX.
而 EditableXXXViewController 必须实现的方法有 configureNewXXX, 以及其父类的 configureXXX.
--- 我想到的解决办法(A, B 为不同方法)
A. 每个类需要其子类实现的 **所有** 方法以及属性放入一个 Protocol, 类本身遵循这个 Protocol, 并且提供这些方法的空实现.
B. 将这些需要实现的方法和属性放入一个 Delegate 中, 同上, Delegate 用一个 Protocol 阐明 **所有** 方法和属性.
* 所有: 也就是说, 子类的 Protocol 实际上并不继承父类的 Protocol, 但 Protocol 包含父类需要实现的方法. (或许这不是一个好的解决方案)
--- TL;DR
困扰我的就是如何能让用 EditableXXXViewController 的人不用走弯路就知道需要实现它的父类方法?
----
初学 Objective-C, 还不是太了解 Objective-C 的设计方法. 所以这个问题或许不是接口设计的问题, 也可能是本身两个类设计的问题.
各位有任何建议都可以提出来, 谢谢. 回复必谢. :D