0

私のオフィスでは、Java、Apache Wicket を使用しています。これで、Wicket に詳しい人はSpringBean注釈について知っているかもしれません。そうでない人は、Wicket が Spring と通信する方法と考えることができます。WebPageクラスがやのような wicket クラスを継承している場合、SpringPanelは依存関係が自動的に注入されます。しかし、それがウィケット コンポーネントのサブクラスでない場合、Spring に依存関係を注入するように具体的に指示する方法があります。

Injector.get().inject(this);

スイスナイフのように機能します。

では本題に入りましょう。最近、同僚がデータベースで動作するクラスに取り組んでいるのを見ました (そしてウィケットとは完全に独立しています) 彼は NullPointer を取得することについて不平を言っていましたSpringBean。注射についてスプリングに伝えるか、スイスナイフを使用する必要があります。

代わりにWebPage、WebPage を表すクラスを拡張するだけのクラスを作成しました。クラスは WebPage クラスとは何の関係もないので、それは正しい方法ではないと彼に言ったとき、彼はそれが機能するので大丈夫であり、彼は他の場所でもそれを使用するだろうと言いました。

私の質問は、クラスがそのために作られていない場合でも、クラスを拡張するのは正しいですか?

4

3 に答える 3

4

クラスは、クラスと「is a」関係にある場合にのみ拡張する必要があります。http://www.w3resource.com/java-tutorial/inheritance-composition-relationship.php#sthash.sOckIrpz.dpufから取得した「is a」関係の適切な説明

オブジェクト指向プログラミングでは、IS-A の概念は完全に継承に基づいており、クラス継承またはインターフェイス継承の 2 つのタイプがあります。「A は B 型のものだ」と言っているようなものです。たとえば、Apple は Fruit、Car は Vehicle などです。継承は一方向です。たとえば、家は建物です。しかし、建物は家ではありません。

于 2013-09-14T16:48:39.090 に答える
1
class Fruit{

}

class Apple extends Fruit{
   //as it is a fruit
}

class Potato extends Fruit{
   //No it is not a fruit so it should not extend it
}
于 2013-09-14T16:53:08.650 に答える
1

絶対にそうではありません。そのような決定は、後で戻ってきてあなたを傷つけます. この男は、それを他の場所で使用するという決定が、実際には事態を悪化させることを認識しています.

プロジェクトのコード ポリスマンとして誰かを選ぶ必要があります。個人的には、このレベルの能力を持つ人物をその役割に推薦することはできません。

于 2013-09-14T17:06:39.447 に答える