避免部分对象实例化

时间:2013-04-11 05:11:34

标签: design-patterns objectinstantiation

我在项目中面临着与设计相关的两难困境。如果我能得到一些建议,我真的很感激。有一个POJO,大约20-25个领域&在某些情况下,根据需要部分实例化该对象。在我看来,这不是一个好的做法&应该通过使用继承或组合来避免。我正在寻找关于实现对象创建逻辑(可能是设计模式)的最佳方法的建议,以避免部分实例化。目前,正在使用构建器模式创建对象。

基本上,它是一个摇摆应用程序。数据取自JDialog& Co.的不同领域(20-25)。传递到下一个窗口进行确认。使用POJO传递此数据。此POJO当前使用构建器模式进行实例化。但我正在寻找一种方法来实现这一点,其中POJO没有部分实例化&用于其他只需要传递几个字段的情况。

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果您的类具有仅在某些条件下使用但在其他条件下不需要的参数,那么您肯定应该进行一些重构。例如,尝试Extract Class重构,以对某些参数和方法进行分组。如果您有一些类型代码,表明需要某些参数,请考虑replacing typecode with subclasses 如果在对象的生命周期内typecode没有改变,或者替换t ypecode with state/strategy。然后只需将字段和方法从原始类移动到这些新创建的类。

我建议你阅读Martin Fowler的重构书。它真棒,非常有帮助。

构建器模式没问题,但您可能希望为对象创建实现工厂方法模式。