優れたOOPデザイン、クリーンなコード、柔軟性、将来のコードのにおいを避けるという点で、何が優れているのだろうかと思っています。イメージの状況。クラスとして表す必要がある非常によく似たオブジェクトがたくさんあります。これらのクラスには特定の機能はなく、データクラスだけで、名前(およびコンテキスト)だけが異なります。例:
Class A
{
String name;
string description;
}
Class B
{
String name;
String count;
String description;
}
Class C
{
String name;
String count;
String description;
String imageUrl;
}
Class D
{
String name;
String count;
}
Class E
{
String name;
String count;
String imageUrl;
String age;
}
「より良い」読みやすさを得るためにそれらを別々のクラスに保持する方が良いでしょうが、多くのコードの繰り返しがありますか、それとも継承を使用してよりDRYにする方が良いでしょうか?
継承を使用すると、次のような結果になりますが、クラス名は文脈上の意味を失います(has-aではなくis-aのため):
Class A
{
String name;
String description;
}
Class B : A
{
String count;
}
Class C : B
{
String imageUrl;
}
Class D : C
{
String age;
}
継承はコードの再利用には使用されず、使用されるべきではありませんが、そのような場合にコードの繰り返しを減らす他の方法はありません。