我正在尝试在编写我的 iOS 游戏时实现组件编程的概念。
在 Clemens Szyperski 的《组件软件:超越面向对象编程》一书中,他提到了一种策略:
(不是引用)从添加组件 Quack 的 Duck 类开始。Quack 类在调用它的任何对象上实现一个接口,该接口指定一个使用 Quacks quack() 的方法
使用此设置,Duck 对 Quack 没有任何参考或认识,除非它被实例化,并且此后从未在 Duck 中使用过。其他对象可以调用 duckObject.quack() 并在只知道 Duck 对象的情况下到达 Quack。
到目前为止,我一直在尝试实现这一点,但没有成功。最好,Duck 只需要实例化代码,其余代码放在 Quack 类中。这可以在 Objective-C 中完成(对于 iOS?),还是我最好离开 COP 使用其他语言?