Golang Option模式
创建对象的“构造方法”
相信了解过C++、Java等面向对象语言的人都知道,这类编程语言都会通过类的构造方法来创建对象,这些编程语言都允许定义多个相同名称但参数类型、参数个数不同的构造方法,来实现不同场景下的对象创建。例如以下提供的Java例子,Student类就提供了三个构造器(这里假设一个学生对象,必须要有id和name属性,addr和age属性可选),我们可以通过new Student(1, "studentName")
创建一个默认的学生对象,也可以通过new Student(1, "studentName", "studentAddr")
创建一个指定地址的学生对象。
class Student {
private long id;
private String name;
private String addr = "unknown";
private int age = 18;
// 一般的Student对象
public Student(long id, String name) {
this.id = id;
this.name = name;
}
// 指定addr的Student对象
public Student(long id, String name, String addr) {
this.id = id;
this.name = name;
this.addr = addr;
}
// 指定addr和age的Student对象
public Student(long id, String name, String addr, int age) {
this.id = id;
this.name = name;
this.addr = addr;
this.age = age;
}
public static void main (String[] args) {
Student st1 = new Student((long)1, "zhang san");
System.out.println(st1.id + "," + st1.name);
Student st2 = new Student((long)2, "li si", "中国");
System.out.println(st2.id