我正在編寫一個關於醫療信息的小型項目,並在其中,我正在從幾個數據源中讀取文本。所有這些文本來源都有相同的類型的信息,但標籤略有不同。例如,sourceA有一個標題爲「不利影響」的部分,而sourceB稱其爲「副作用」。我有一個叫做Reader
的接口,和幾個實現這個接口的類(AReader
,BReader
等)。另外,我爲每個課程的標題進行枚舉。例如:使用接口與枚舉
enum ASections {
SIDE_EFFECTS ("side effects"),
DOSAGE ("dosage");
private String sectionTitle;
private ASections(String s) { this.sectionTitle = s; }
}
enum BSections {
SIDE_EFFECTS ("adverse effects"),
DOSAGE ("dosage and usage");
private String sectionTitle;
private BSections(String s) { this.sectionTitle = s; }
}
在我的項目的核心在於一個Orchestrator
類,它使用一個Reader
(實際的源A,B等。由命令行選項指定)。到現在爲止還挺好。
不過,我想所有的類實現Reader
,也能實現的方法getSectionText
,這裏的參數應該是ASections或BSections或...
如何指定在接口級這樣的方法?
這是我第一次(顯然是錯誤的)嘗試:
public String getSectionText(Enum _section_enum);
的想法是,沒有哪個數據源是在命令行中指定的事,我應該能夠獲得所需要的類型的文本獲取適當的部分標題。
最簡單的事情可能是讓你的_enums_實現一個接口,並帶有一個getSectionText方法,該方法接受任何必要的參數。 –
我不明白什麼會返回sectionText,爲什麼你傳遞一個枚舉? – nachokk
@nachokk:在我的設計中,實現'Reader'接口的類有一個映射,它將節標題映射到節體中的實際文本。我想從標題的確切文本中抽象出來(因爲它們可能在多個來源中有差異,例如,「劑量」,「劑量和用法」等)。因此,該映射具有枚舉(例如'ASections.DOSAGE')作爲關鍵字,文本作爲值。然後我可以使用'Reader#getSectionText'來獲取文本。 –