私は電卓のクラスを作成しています。将来、それを拡張できるようにしたいと考えています。私は将来のクラスをサブクラス化するべきかどうか、あるいは各エクステンションを新しいカテゴリにする必要があるかどうかを判断することはできません。どちらが良い選択ですか?Objective-Cでの拡張とサブクラス化、後で拡張したい電卓クラスを作成するのに適していますか?
将来的にこの電卓クラスに追加したいと思ったら、誰かがこの電卓クラスを拡張するための最良の方法を決定できません。それぞれのユーザーにサブクラス化するか、追加するメソッドのカテゴリを追加する必要があります。
私がしたかったのは、ユーザーが "+ *"と言う新しい操作を定義したい場合、新しいカテゴリで定義してセレクタを与えることができるため、すべての操作を辞書に保存してその結果を計算する方法。
例えば、
SEL method = NSSelectorFromString ( @"plusTimesWithArgA:andArgB:"; );
[self performSelector:@selector(method) withObject:operandA withObject:operandB];
あなたの質問の後半部分とその例では、カテゴリと同じように見えます。ユーザーはクラス内のメソッドを上書きする必要がないためです。 – user523234