2017-06-21 52 views
2

如果我們有一個父類汽車和它的孩子班作爲巴士,BiCycle,摩托車。如何動態處理java對象?

在服務類中的某個時間點,我將獲得列表車輛等所有對象。

我的業務邏輯應該如下, 將收到故障車輛列表,並且對於每種車型,應分配相應的技工。

如果我收到一輛自行車,它應該去一個自行車修理工或其他車輛和他們各自的機械師。

它看起來不好,當我用來切換大小寫和其他條件。所以我試圖使用訪問者模式和工廠模式,工廠模式也將使用開關或if-else條件來動態獲取對象,並調用重寫的方法。目前使用訪問者模式。

請提出一些方法可以更好地處理這種情況。

+1

聽起來你應該定義一個額外的界面有goToMechanic,將由bicyle和車輛實施... – Eliethesaiyan

+3

訪客模式是好的。如果沒有實際的反對意見,可以關閉此案件。 – Holger

回答

0

Vehicle類中定義sendToMechanic抽象方法,並用每個子類中的適當定義覆蓋它。

+0

我不希望這些方法在子類中,成爲要求的原因。 – Karthikeyan

0

我會建議所有三個子類實現相同的接口(例如repairable)與`allocateToMechanic的方法。一個接口主要描述「對象可以做什麼」與描述「什麼對象是」的抽象類。

+0

感謝@stzoannos的迴應,我會試試這個 – Karthikeyan