2017-06-25 125 views
-2

藥房銷售來自不同生產者的藥品。每種藥物都有一個名稱,類型(抗生素,消炎,胃),價格等。但是,進口藥品必須有當前國家實驗室的證書。此外,如果客戶購買進口藥品,藥劑工人必須查詢藥品數據庫並查看國內生產商的相關藥品數據(通常較便宜)。我應該使用哪種設計模式,爲什麼?

我們如何建立一個類結構在這個藥店處理醫藥數據庫?

+1

列表繪製應用程序的UML所以你可以看到哪裏是什麼\ –

回答

0

我發現Applying UML and Patterns由Craig Larman與一本很好的書,瞭解設計,模式和實現。

如果您想要一個更快的解決方案而不是閱讀整本書,只需創建一些類:創建一些類,找出您的接口將會是什麼等。嘗試一些東西,看看最容易實現/維護什麼。您有ProductService有一個FindCounterpartMedicines()。如果在你的問題中描述的情況下是唯一的特例,它可以只是一個簡單的if來實現:不要複雜的事情,如果它不是必要的,但「做能夠工作最簡單的事」(link)。

if (medicine.IsImported) { 
    result.CounterPartMedicines = FindCounterpartMedicines(medicine); 
} 

如果每個藥都有一些不同的特殊邏輯,你可以使用多態,避免

if (medicine.SomeProp) doSomePropLogic(); 
if (medicine.SomeOtherProp) doSomeOtherPropLogic(); 

繼承例如

interface Medicine { 
    BeforeBuyLogic(); 
} 

class Antibiotics : Medicine { 
    BeforeBuyLogic() { 
     // check doctor subscription 
    } 
} 

class StomachMed : Medicine { 
    BeforeBuyLogic() { 
     // check customer allergies 
    } 
} 
相關問題