建模类时,首选的初始化方式是什么:
使用其中任何一个的考虑因素是什么?
在某些情况下,如果无法构造对象,我更喜欢使用返回 null 的工厂方法。这使代码整洁。在采取替代操作之前,我可以简单地检查返回的值是否不为空,而不是从构造函数中抛出异常。(我个人不喜欢例外)
比如说,我在一个需要 id 值的类上有一个构造函数。构造函数使用此值从数据库中填充类。在具有指定 id 的记录不存在的情况下,构造函数会抛出 RecordNotFoundException。在这种情况下,我将不得不将所有此类类的构造包含在 try..catch 块中。
与此相反,我可以在那些类上有一个静态工厂方法,如果找不到记录,它将返回 null。
在这种情况下,构造函数或工厂方法哪种方法更好?
使用工厂方法模式