序言
很多情况下我们都是通过构造函数来构造对象,当由于语言特性,构造函数要与类同名,重载构造函数只是参数不同很容易造成混淆。但是采取java静态工厂方法可以避免这些缺点。
优势
1.静态工厂方法拥有姓名
因为拥有姓名,所以可在在命名上加以区分,代码更容易阅读。
2.不需要每次调用都新建一个新的对象,减少开销
如果我们用关键字new新建对象,那么么一次都会新建一个新的对象。而在某些情况下只需要返回一个对象,而并不关心有没有被使用过,静态工厂方法可以反复利用以创建的对象。
3.可以返回子类
构造函数只能返回确切的自身那个类型,而静态工厂方法可以返回类的子类型,更加灵活。
4.多了一层控制,更容易修改。
运用静态工厂方法可以预先对某些属性进行初始化,测试直接调用静态工厂办法而不用多次粘贴复制。如图