2017-06-21 11 views
2

親クラスVehicleとその子クラスがBus、BiCycle、MotorBikeの場合。どのように動的にJavaオブジェクトを処理するのですか?

サービスクラスのある時点で、私はリスト車両のようなすべてのオブジェクトを取得します。

私のビジネスロジックは以下のようになります。 障害のある車両のリストを受け取って、それぞれの車両のタイプごとにそれぞれの整備士を割り当てる必要があります。

私は自転車を受け取った場合、自転車の整備士、その他の車両、それぞれの機械に行きます。

私は大文字と小文字を切り替えるときに悪く見えました。ビジターパターンとファクトリパターンを使用しようとしましたが、ファクトリパターンもスイッチオブジェクトまたはif-else条件を使用してオブジェクトを動的に取得し、メソッドをオーバーライドします。現在ビジターパターンを使用しています。

このケースではうまくいくいくつかのアプローチをお勧めします。

+1

追加のインターフェイスを定義する必要があるという音は、自転車と車両によって実装されるgoToMechanicを持っています。 – Eliethesaiyan

+3

Visitorパターンは問題ありません。あなたの側から実際に異議がない場合、このケースは閉鎖することができます。 – Holger

答えて

0

抽象メソッドをVehicleクラスに定義し、それを各子クラスの適切な定義で上書きします。

+0

私はこれらのメソッドがサブクラスにあることを望んでいません。 – Karthikeyan

0

「allocateToMechanic」のようなメソッドを使用して、同じインターフェース(例:repairable)を実装する3つのサブクラスをすべて提案します。インタフェースは、「オブジェクトが何を行うことができるか」と記述しています。「」とは、「オブジェクトが何であるか」を記述する抽象クラスです。です。

+0

応答@stzoannosのおかげで、私はこれを試してみます – Karthikeyan

関連する問題