我是一個新手的設計模式,這裏是我的問題設計模式問題
如果我們有實現它,這個每個類都有不同的屬性,一些類的抽象類。
現在我有另一個(管理員類),其中包含抽象類的數組,我想把一個搜索方法在其中...我怎麼能做到這一點,而不需要投到具體的類?
我有2個想法:
第一個:添加的接口一個額外的水平,這與接口而不是代碼去(即而非澆注混凝土類我將強制轉換爲一個接口。)實施規則... 但這種方式,當我添加另一個類,我將不得不爲它做一個接口,我也將不得不編輯管理器(客戶端),這似乎不是很好。
二解決方案: 它看起來有點怪,仍然需要改進,但其主要目的是使經理或其他任何客戶端可使用抽象類,不知道是誰擴展它或它的屬性的任何東西。
的solutin是folows: 加入將不得不在此改變一個接口,強制執行它來生成其例如字段的完整詳細描述每一個新的項的汽車對象將具有返回具有如下因素
散列映射字段:{字段類型,fieldValue方法}
例如
- 模型:{文本, 「福特」}
- manifactureDate:{日期,「89年12月1日」}
並且每個對象將有也執行該採取 哈希表這樣的方法叫compareFields和比較,它的領域,返回true或錯誤。
現在這樣,我已經解決了許多問題 - 對於貴我將只需要做出一個渲染引擎此HashMap可以顯示 任何項目,而不必知道它的類型。 (再次GUI是另一個客戶端爲抽象類)
- 對於搜索我可以得到包含用戶在抽象項搜索表單和循環進入 領域的哈希表,並調用fieldmethod比較
我還是不怎樣,我會處理複雜的對象(即有另一個對象及其屬性)
我不知道什麼樣的格局是這樣的..這只是一個想法,我想過。
編輯:具體示例
,如果我有一個抽象類項與汽車和公共汽車和水上交通實現它,,每本類都有不同的屬性.... 怎麼可以不強制轉換爲汽車或巴士... 真的很抱歉的長期問題,例如流量管理器搜索使用抽象類某一個項目經理
咦?我很困惑。你在用什麼語言? – 2009-12-17 17:48:28
無論他使用什麼語言。設計模式不關心它們可以在大多數任何語言中實現。 – JonH 2009-12-17 17:50:18
我同意jonH ,,,但任何我可能使用java的方式 – 2009-12-17 17:51:26