0

MATH クラスを作成していて、2 つの数値を処理するメソッドを提供する必要があるとします。[

可能な操作ごとに have メソッドという従来のメカニズムを提供する代わりに、1 つのメソッド eval を提供します。wherefloat eval(ArgObj);ArgObj、2 つの数値と演算子を保持できるオブジェクトです。したがって、単一のメソッドで複数の操作を実行できるようになりました。

このデザインの欠点は何ですか?

2 つの特定の欠点は、eval がより多くの操作を処理できるようになるため、メンテナンスとドキュメント化です。

ここで見逃している他の欠点は何ですか?

更新: 私が把握しようとしているのは、大規模なモノリシックな方法のネガです。上記の例は単なる仮説であり、別の同様の例は次のような方法です

float doSomething(int basedOn)

どこで doSomething は一連の操作を実行できます。

4

1 に答える 1

1

コードを読むことは楽しい経験でなければならず、メソッドが何をするかは露骨に明白であるべきです。

あなたも英語を10単語に減らしたいですか?もちろん違います...

よく使用され、愛されている API から学び、API が習得しやすく、使いやすく、誤用されにくいものであることを確認してください。

doSomething近づかないことをお勧めします。別のアクションが必要な場合、新しいメソッドを呼び出しますdoSomething2か? うまくいけば、それが実行可能なオプションとは見なされません...

于 2013-05-01T16:17:44.943 に答える