静的内部クラスはいくらいになると思いました。
-
21-08-2019 - |
質問
私は見てい数箇所が動的に内部クラスの設計を拡張する"ヘルパー"の授業によって、私のコードで多くり安全で、私の意見では、すことはないですね。例えば、想像している"SearchCriteria"クラスです。多くの共通性のないこと検索(検索語をグループの検索、日付範囲等) 延長い静的な内部クラスかくカップルの拡張子を検索できるクラスの特定の違いがある。この よう のように悪いことに理論(タイト結合の悪さ!) その延長ごとに異なるトクラス(一クラスは、一つの目的で
私の質問は、ご経験の静的内部クラスはどのような言語equivelentは)コード読みやすくするために/保守性又は本当に食付きのEOF?
としても活動していない場合はこの地域のwiki材料です。
解決
私には完全に合理的ですね。その内部クラスにすることで、あなたはそれを見つけるのは簡単で、審査時に検索可能なクラスの変更のための明白な候補作っている。
密結合は、ときに実際にそれらの一方が他方1を呼び出すために起こるという理由だけで一緒に属していない夫婦の事だけ悪いです。例えば密接に協力したクラスについては、 、あなたの場合のように、それらの一方が他方をサポートするために存在する場合、それは「凝集」と呼ばれています、そしてそれは、の良いことの
です他のヒント
このクラスは、ユニットの再利用しています。そのため、一部の結合の授業は通常、期待される。のユニットの再利用が通常の収集に関連したクラス.
Pythonでは、各種様々な構造物です。
パッケージ。が含まれているモジュールです。これらは基本的にディレクトリをちょこっとガマン、ちょこっPythonの機械をされておりませんでした。
モジュールです。が含まれている授業ですね。これらのファイルを含むことはできず数に関する詳細なデータを作る。しばしば、"内部クラス"事業で取り扱うことです。
ます。これらを含むことができ内部クラスの定義と方法。時(なが)内部クラスが実際に使用されます。これは珍しい、モジュールレベルの連携の授業は通常完全に明らかでない。
内部クラスを使用して唯一の注意点は、あなたがあらゆる場所に自分自身を繰り返していないことを確認作っている - のように - あなたは内部クラスを定義するときに、確認してください、あなたはどこにもその機能を使用する必要はするつもりはありません、および、その機能は、必ずしも外部クラスと結合されます。あなたはすべてまったく同じsetOrderyByNameDesc()
メソッドを実装する内部クラスの全体の束で終わるしたくない。
「疎結合」でのポイントは2つのクラスがあなたの「SearchCriteria」クラスの何のコードの変更がある場合、他のクラスの変化でなければならないように分離しておくことです。私はあなたが話している静的な内部クラスが潜在的にコード悪夢を維持作ることができると思います。 SearchCriteriaで1つの変更は、今更新のために破壊されるものを把握するために、静的クラスのすべてを検索できます送信することができます。それは実際にいくつかの理由のために必要とされない限り、個人的に、私はそのような内部クラスから離れてしまう。