2017-03-10 29 views
0

我經常面對這個問題。我不知道,我的方法是否不正確。我工作的項目的代碼基礎很安靜,並且不可能使用構建器模式或靜態工廠來更改當前構造器,因爲其他幾個類都使用當前構造器。添加構造現有類影響最小

可以說是目前的構造;

// Constructor used until now 
    public MatchingPortfolioUtil(Integer parameterA, Integer parameterB, 
    Integer parameterC) 
    { 
    this.parameterA = parameterA; 
    this.parameterB = parameterB; 
    this.parameterC = parameterC; 
    } 

我想添加下面的構造函數。

// The new constructor 
    public MatchingPortfolioUtil(Integer parameterA) 
    { 
    this.parameterA = parameterA; 
    } 

到現在爲止,一切似乎都很正常,但我想要的(如果可能的話有一個很好的設計)是構造函數,這是我爲我的新模塊創建的,應該只有用我的新的模塊,因爲這可能會導致一些如果別人認爲這個構造函數是安全的,則在另一個模塊中使用它。

+2

如果您只想在您的項目中使用它,請創建現有類的子類並在其中添加構造函數 – Jens

+0

@Jens如果我創建當前類的子類,則必須再次使用此構造函數。如果有的話,我期待着更清潔的解決方案。 –

+0

爲什麼你必須再次使用構造函數(哪個)? – Jens

回答

1

類是緊耦合,這是超過1000行代碼。我只需要該類的一種方法,對於這種特殊方法,我不需要其他參數。

這聽起來像班裏有很多的責任。

我建議移動,你需要單獨的(新)類中的方法,這樣就可以在分離使用它。

相關問題