自己在学习effective java中,附上自己的学习的时候想到的示例代码,算是做一个记录,有人能指正我弄错的地方是最好了。
第一条,考虑用静态工厂方法替代构造器
示例代码中写了一些方法,但是实际上可能并没有在main函数中去应用,当然也可以应用一些,之所以写出来是为了培养自己的习惯。
示例代码:
Main.java
import com.test.*;
public class Main {
public static void main(String[] args){
Person woman = PersonFactory.getWoman();
Person man = PersonFactory.getMan();
System.out.println(woman.toString());
}
}
在com.test这个包中,创建两个文件,一个是Person.java,一个是PersonFactory.java。
Person.java
package com.test;
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return this.age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
String res = "name: " + name + "\n" + "age: " + age;
return res;
}
}
PersonFactory.java
package com.test;
public class PersonFactory {
private static Person woman = new Person("woman", 18);
private static Person man = new Person("man", 60);
public static Person getWoman() {
return woman;
}
public static Person getMan() {
return man;
}
public static Person newInstance(String name, int age) {
return new Person(name, age);
}
}