電卓クラスを作成していますが、将来的に拡張できるようにしたいと考えています。将来のクラスでそれをサブクラス化する必要があるのか、それとも各拡張機能を新しいカテゴリにするだけなのかを判断できません。どちらがより良い選択肢ですか?
将来、この電卓クラスに追加したい場合、誰かがこの電卓クラスを拡張するための最良の方法を判断できません。各ユーザーにそれをサブクラス化させるか、追加したいメソッドのカテゴリを追加する必要があります。
私がやりたかったのは、ユーザーが「+*」などの新しい操作を定義したい場合、新しいカテゴリでそれを定義してセレクターを提供できるので、すべての操作を辞書に保存し、計算するメソッドを選択できるようにすることです結果。
例えば、
SEL method = NSSelectorFromString (
@"plusTimesWithArgA:andArgB:";
);
[self performSelector:@selector(method) withObject:operandA withObject:operandB];