我正在使用Java來生成JCL。我有四種添加數據定義語句的方法。一個接受一個字符,一個字符串,一個數組(字符串),另一個對第二個參數沒有任何作用。(Java)重載:多少太多?
public void addDD (String label, char classChar) //Generates: SYSIN DD SYSOUT=[classChar]
public void addDD (String label, String dataset) //Generates: SYSIN DD DSN=[dataset]
public void addDD (String label) //Generates: SYSIN DD DUMMY
public void addDD (String label, String datasets[]) //Generates: SYSIN DD *
// DSN=[datasets[0]],
// DSN=[datasets[1]]
我擔心的是這些方法不只是接受不同的參數類型;整個方法根據類型而改變。如果是字符串,則需要「DSN =」。如果是字符,則需要「SYSOUT =」。同時,我不希望客戶擔心爲每種情況使用不同的方法名稱。
是我目前的設計中考慮不好的做法還是不錯的?
閱讀關於生成器模式http://www.javacodegeeks.com/2013/01/the-builder-pattern-in-practice.html – Prateek
感謝您的意見。建設者模式肯定會是一個好主意,但遺憾的是,這已經是其中的一部分,而且可能會讓人感到非常困惑。 –
單獨的DD Class&Builder可能是明智的;你可以爲簡單的情況保留非常基本的addDD,但爲更復雜的情況添加addDD(DDdef ddDef)。 DD的變化很多,您需要使用當前方法的很多方法。 –