0

私の抽象親クラスを拡張するサブクラスはほとんどありません。サブクラスには、日付などの同じ属性がほとんどありません。だから私の質問は、これらの属性(日付)のセッターとゲッターを抽象クラスで宣言する必要がありますか、それとも各サブクラスで宣言する必要がありますか?あるサブクラスでは「リリース日」であり、他の「日付」では「キャスト」する必要がありますか?

4

2 に答える 2

2

依存します。

多くの人が、継承(つまり:はa)ではなく構成(つまり:はa)の使用を提案しています。そしてほとんどの場合、それはあなたが何を達成したいかによります。両方のアプローチには賛否両論があります。

これらのプロパティを基本クラスに配置する場合は、すべてのクラスにこれらのプロパティがありますが、すべてのクラスにこれらのプロパティがあるわけではありません。優れた設計として、オブジェクトを完全に入力していない場合、つまり、一部のフィールドをnullまたは空のままにしておくと、目的が適切ではなくなります。オブジェクトは完全に入力されている必要があります。

つまり、ラッププロパティをビヘイビア(別のオブジェクト)に作成し、それらを使用するクラスに委任することができます。

あなたの直感を使って、正しいと感じ、あなたの人生を簡素化してください。

于 2012-09-04T20:57:56.493 に答える
1

すべてのサブクラスが同じ目的で同じフィールドを使用していると言っている場合は、必ずそれを親クラスに追加して、重複を避けてください。サブクラスが両方とも異なる目的で「日付」フィールドを使用していると言っている場合(それらは異なる名前と呼ばれていると述べました)、おそらくサブクラス自体で宣言し、スーパークラスフィールドをそれ以上使用しないでください。 1つの目的(そうでない場合、これは長期的には非常に混乱します)。

于 2012-09-04T20:55:48.313 に答える