java静态工厂方法

1.静态工厂是什么?

静态工厂说白了其实就是一个静态函数,函数中包括了此类的实例化对象,以及对对像的值进行初始化。下面就是最简单的静态工厂

class Student{
    private int age = 10;
    private String name = “王五”;
    public static Student newStudent(int age, String name) 
    {
    	Sudent student = new Student();
        student .age = age;
        student .name = name;
        return student;
    }
    public Student(int age,String name)
    {
    	this.age = age;
    	this.name = name;
	}
}

从代码中可以看到,我分别用了静态函数和构造函数对数值进行初始化。

2.我们为什么要用静态工厂,与构造函数有什么区别?

2.1 静态工厂的每个函数都有名字

往常我们用构造函数来为对象初始化,但有些时候构造函数的重载非常多,这就会对不熟悉这方面业务的编程人员造成很大困扰。仅仅靠参数的不同很难快速区别不同实例对象需要调用的构造顺序。
而如果每个方法都有对应的名字,则会大大加快这一过程。

2.2 静态工厂返回对应的类型的子类

这条不用多说,设计模式中的基本的原则之一——『里氏替换』原则,就是说子类应该能替换父类。
显然,构造方法只能返回确切的自身类型,而静态工厂方法则能够更加灵活,可以根据需要方便地返回任何它的子类型的实例。

你可能感兴趣的:(java)