1

用語の中で:

Motorized VehicleCarMotorTruck

私は次のことを考えていました:

a Car is a Motorized Vehiclea Car has a Motora Truck has a Motora Truck is a Motorized Vehicle

Q1: 上記の関係で正しいですか?

Q2: 私たちは今、その言葉を関連付けたいと思っていますfan...それはどのように見えますか?

私の試み: a fan has a motor, a Motorized Vehicle has a motor, a Car is a Motorized Vehicle, a Car has a Motor,a Truck has a Motora Truck is a Motorized Vehicle

これについて説明が必要です....

4

3 に答える 3

2

これは、上記の良い解決策になる可能性があります。車内のモーターを新品に交換できるので、合成ではなく集合体を維持できます。下の画像を参考にしてください解決

于 2014-04-01T12:10:41.360 に答える
0

コンテキストがなければ、あなたの質問に対する 100% 正確な回答はないと思います。

たとえば、私たちのコンテキストでトラック車を分離するには、車とトラックの動作が異なることを明確に判断できる必要があります。

車とトラックの両方が、(たとえば) 「名前」と「質量」の単純なコンテナーである場合、またはアプリケーションでまったく同じ動作をする所有者などである場合、おそらくクラスではなく特定のオブジェクトの観点から考えます。Vehicle2 つのインスタンスを持つクラス (または単に電動車両)を実装する

Vehicle car = new Vehicle("Car",1200,someMotor);
Vehicle truck = new Vehicle("Truck",3400,someMotor);

それは「用語」だけの単純なことですが、文脈との関係性の問題もあります。関係とは、つながりを意味します。それはほぼ確実です(しかし、それ以上のものをMotorized vehicle持つMotorこともできる記憶があります)が、「モーターが車両を持っている」可能性はかなり高いです(所有者として、特にデータベースエンティティのコンテキストで、特に私たちのコンテキストの場合)車両よりもモーターの周りに集中しています - たとえば、自動車ディーラー向けのシステムを構築している場合)。

誰にとってもそれほど明確ではない小さなことがもう 1 つあります。それは、「車にはモーターがある」および「トラックにはモーターがある」だけでなく、「電動車両にはモーターがある」ということです。車にはモーターがある」が、「動力車だから!」。

また、詳細に進むと (質問は oop タグが付けられているため)、オブジェクト指向の用語では、クラスインターフェイスについて考える必要があり、最終的には、クラスMotorizedVehicleよりもインターフェイス (モーターを取得できる) の方が多いという結論に達することができます。私たちの環境は(ほとんどの場合と同様に)多重継承を許可していません。MotorizedVehicleこれにより、「オバマの車は両方である必要がありますArmoredVehicleが、私は別のクラス階層で電動化/装甲を装備しています」などの問題を防ぐことができます。

TL;DR はすべてコンテキストに依存し、複雑なクラス階層ではなく構成とインターフェイスを優先します

于 2014-04-01T12:26:04.277 に答える
0

[乗用車、トラック] 「ある」[原動機付車両] 「ある」[モーター、ファン]

于 2014-04-01T02:36:41.240 に答える