设计一个医院
源于個人網站:http://programmer.2008red.com/programmer/article_647_777_1.shtml
?
?
收到一封來自Exoweb的郵件,讓去面試(敗的很慘,呵呵。過了好長時間了,都忘記這事了,結果這公司來了郵件,說不能提供給我職位,還安慰我。不過就不過是了,弄這些做什么,害我出了一肚子火),就查了查這個公司。以前去面試過的前輩提到了他們會讓我們設計醫院,學校之類的東東,覺得應該先自己嘗試做一下,就做了!
?
?
?病人Patient分別在各個部門掛號,交費,然后檢查身體,具體的動作由各個部門去做(operation)。
?病人與部門分開,使用組合/聚合關系,個人覺得有點橋梁模式的意思!
假如將來醫院增加新的部門,只要在Patient和Department下增加單層的子類就可以了。
?
具體代碼:
| using System; namespace Hospital
??????? public string Name ???????????? ??? class Register:Patient ??? class Payer:Patient ??? class Inspector:Patient ??? interface Department
??????? public Registe(Patient register) ??????? public void Operation() ??? class Pay:Department ??????? public Pay(Patient payer) ??????? public void Operation() ??? class Inspecte:Department ??????? public Inspecte(Patient inspector) ??????? public Patient Patients ??????? public void Operation() ? ??? class Treatment ??????? public void run() ??? class Program ??????????? string name = "zhong"; ??????????? Console.ReadLine(); |
掛號,交費,檢查可以設置成一個觀察者模式,在C#里當然是用委托來做最好了。
還可以設置很多病人,排隊來看病。這可以用一個Arraylist或哈希表來存儲各個病人的信息,用循環輸出。
由于這是我寫的第一個有關模式的文章,時間上也有點緊,不但上面的想法沒去實現,可能還有一些我不
知道的錯誤缺點列在其中,希望大家原諒并指正。
?
希望自己能盡快實現這些沒完成的想法。
?
和宿舍的人出去吃了個飯,今天端午,呵呵,晚上十二點回到宿舍后一點也不想睡,又開始寫了起來,呵呵!
下面為用一個ArrayList記錄病人的修改。
| ? ?{ ?? *** ?class Treatment ??????? public void show(string name)
??????? public void remove(string name) ??????? public void run() ??? class Program ??????????? string name = "zhong";?????? ??????????? Console.ReadLine(); } |
這塊是使用委托處理的程序:
?
| ? { ? *** ?class Subject ??????? public void remove(UpdateDelegate ud) ??????? public void run() ??? class Treatment ??????? public Treatment(string name) ??????? public void show() ??? class Program ??????????? Subject sj = new Subject(); } |
?
?
分別實現了ArrayList和委托來處理多人的情況。也算是運用了觀察者模式了。
轉載于:https://www.cnblogs.com/sqlite3/archive/2009/06/06/2566671.html
總結
- 上一篇: 《夜听妓诗》第八句是什么
- 下一篇: [SlickEdit] SlickEdi