DIT(継承の深さ)またはNOC(子どもの数)という2つの指標のどちらが問題になるのでしょうか? 15のDITと15のNOCが存在すると仮定しましょう。これはより問題があり、なぜですか?DIT(継承の深さ)またはNOC(子どもの数)という2つの指標のどちらが問題になるのでしょうか?
2
A
答えて
0
継承が深刻な主な問題は、その階層のクラス間で高い依存関係を作成することです。 Class A
を親とするクラス階層があり、Class B
はClass A
、Class C
はClass B
などのように拡張されているとします。 Class B
はClass A
に高い依存性を持ちます。しかし、Class C
は、Class A
とClass B
の両方に高い依存性を持っています。したがって、階層内の各子との結合を増やします。
親と子供の間に依存関係を生成するだけなので、子供の数が多いほど悪くないかもしれません。
オブジェクトデザインの主なマントラの1つは、高い凝集力と疎結合です。
0
ChidamberとKemererによると、"Towards a metric suite for object-oriented design"によると、階層の幅よりも深さが優先されます。ペーパー"Metrics for maintainability of class inheritance hierarchies"は良い読書です。最初の参考文献を読むと、著者は、深さが継承を通じてメソッドの再利用を促進すると主張している。
関連する問題
- 1. コンポジットパターンは、ちょうどアレイに私をもたらすのでしょうか?
- 2. Javascriptの深いネストされた子どもたちを平らにします
- 3. TypeError:join()はちょうど1つの引数をとります(2が指定されています)
- 4. TypeError:translate()はちょうど1つの引数をとります(2が指定されています)
- 5. JAVAFXの問題 - ちょうど1行が描画されました
- 6. どのように私は2クラスが継承したクラス
- 7. Pythonでは、どのように特定の深さにdictの深いコピーを行うでしょうか?
- 8. doctrine associationちょうど2つのテーブルのうちの1つを埋める
- 9. 入れ子クラスはコンテナクラスからどのように継承されますか?
- 10. JsDoc複数の継承またはミックスインはどうですか?
- 11. TypeError:func()はちょうど1つの引数をとります(0が指定されています)
- 12. これらのコードはどちらも同じことでしょうか?
- 13. 1つのinterfaseから継承した異なるタイプの汎用リストをどのように組み合わせるとよいでしょうか?
- 14. C++では、ちょうど<, == and >のうちの1つが浮動小数点数で真となることが保証されていますか?
- 15. Javascriptでは複数の継承と連結継承がどのように機能しますか?
- 16. Unity3D:子どもたちを再育てながらループする際の問題
- 17. 私はちょうどJavaの2つの文字列を連結したい
- 18. jQueryの検証:ちょうど英語の文字+ちょうどの数字
- 19. どちらの方が良いでしょうか?
- 20. Async/Await対Parellel.Forのどちらが良いでしょうか?
- 21. しない理由をどのようにちょうど..
- 22. 隠された子どものうちのn番目の子
- 23. C++で多重継承:複数の継承を持つC++で図を表現するにはどうすればよいでしょうか?
- 24. バイナリ表現が指定された整数とちょうどkの位置が異なるカウント整数
- 25. uiautomatorで継承を使用することは可能ですか?もしそうなら、どのように?
- 26. はちょうどFirefoxの
- 27. パイソン:ちょうど次の疑問タプル
- 28. カールの問題は、私はちょうどそれを解決しよう
- 29. Javaのクラスと継承 - どうしたのですか?
- 30. ちょうど興味深い、C#でMustOverrideの周りにどのような方法?
これは非常に明確です説明!ありがとうございました! – Spark