知覚される機能。
"ユーティリティ"機能は、OOが対象とする機能の多くとは異なります。
コレクション、I/O、数学、まさにすべてのユーティリティを使ってケースを考えてみましょう。
OOでは、通常、ドメインをモデル化します。あなたのドメインに本当にフィットするものはありません。あなたがコーディングして "ああ、新しいハッシュテーブルを注文する必要があります、私たちはいっぱいになっています"というようなものではありません。ユーティリティのものはしばしば適合しません。
私たちはかなり近づいていますが、コレクションを渡すことはまだあまりありません(ビジネスロジックはどこにありますか?あなたのコレクションを操作するメソッドはどこに置かれていますか?それで?)
数字と数は同じです。 Integer.sqrt()とLong.sqrt()とFloat.sqrt()を持つのは難しいです。ちょうど意味をなさないだけでなく、「新しいMath()。sqrt()」もありません。それだけでよくモデル化しない領域がたくさんあります。あなたが数学的なモデリングを探しているなら、OOはあなたの最善の策ではないかもしれません。 (私はJavaでかなり複雑な "Complex"と "Matrix"クラスを作ってかなりOOにしましたが、OOとJavaの限界のいくつかを教えてくれました - ほとんどGroovyのクラスを "Using"
ビジネスロジックをモデル化するためにOOほど優れているとは思えませんでした。コード間の接続を実証し、データとコードの関係を管理することができます。
私たちはそうするのがより理にかなったら、別のモデルに戻ってしまいます。また
リンク先の質問/回答は私が探していたものです。ありがとう!私は数分前に 'List'を発見しました。そのクラスは私が期待していた方法で動作します。そこでの答えは、なぜ配列とリストが異なるように設計されているかを示しています。 – dharmatech
実際、管理者の1人がリンク先の質問の複製としてこれをマークしたい場合、それは私にとっては問題ありません。 – dharmatech