Effective Java——01 静态方法替代构造器

版权声明:本文为博主原创文章,未经博主允许不得转载。 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.与其他静态方法实际上没任何区别(想要了解具体如何实例化一个类,是非常困难的)。

猜你喜欢

转载自blog.csdn.net/qq_29611427/article/details/81867642
今日推荐