通常我覺得需要使用可配置功能來設計對象。java配置/參數傳遞設計
爲了舉例說明,假設我正在創建一個DateIterator
。可配置選項可能是迭代關閉間隔[start, end]
或開放式間隔[start, end)
。
- (1),在我看來,非正常的解決方案 - 僅限於一個真/假配置選項
new DateIterator(boolean openInterval);
- (2)類型安全枚舉方法 - 通常是有點笨重
new DateIterator(Interval.OPEN_END);
- (3)unconv entional嘗試 - 不錯,但不要太直截了當
new DateIterator().openEnd();
- (4)繼承方法 - 往往過度工程
new OpenEndedDateIterator();
爲了這個來,我認爲不如幾個備選方案,如基於整數的配置new DateIterator(Interval.OPEN_END);
或基於屬性的配置。
還有其他方法嗎?你更喜歡哪種方法?