版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29611427/article/details/81867642
1.静态方法替代构造器
先以一段代码开头,有个大概的了解:
//动物类
public class Animal {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
一般来说,我们创建动物对象会是这样,
public static void main(String[] args) {
Animal animal = new Animal();
}
用静态方法改变之后,animal类就会成这样
public class Animal {
private String name;
private String age;
//私有构造方法
private Animal(){
}
//提供创造实例的静态方法
public static Animal getInstance(){
return new Animal();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
调用变为这样,
public static void main(String[] args) {
Animal animal = Animal.getInstance();
}
2.书中阐述了静态工厂方法与构造器的几个优点和缺点。
优点:
1.静态方法有名称。
2.不必在每次调用它们的时候都创建一个新对象(可以整成单例模式)。
3.它们可以返回类型的任何子类型对象(利用多态)。
4.在创建参数化实例的时候,它们使代码更加简洁。
缺点:
1.类如果不含共有的或者受保护的构造器,就不能被子类化。
2.与其他静态方法实际上没任何区别(想要了解具体如何实例化一个类,是非常困难的)。