假设我正在创建一个表示分数的Objective-C类,并且想要创建不可变和可变的版本.
遵循Foundation框架中的模式,您可能希望fractionByAddingFraction:在不可变版本和addFraction:可变版本中看到该方法.
我遇到的悖论是如何在两个类之间只包含一次分数加法逻辑.似乎不可变fractionByAddingFraction:方法需要知道(并利用)可变addFraction:方法以避免代码重复,并且在可执行类的实现中包含可变方法意味着可以想象它们可以在不可变对象上调用,这打败了这一点.
非常感谢一个简短的解释(或者更好的是,这个简化示例的延续)!