创建一个女朋友,她有很多的属性,比如:性别,年龄,身高,体重,类型等等,虽然每个女朋友都有这些属性,但是每个人找女朋友的要求都是不一样的,有的人喜欢男的,有的人喜欢女的,有的喜欢胖的,不同的人可以根据自己的喜好去建造不同的女朋友,我们不需要关心她是怎么建造的,我们只需要去指定她的属性就行了

相比如文字解释,我更习惯撸代码来解释,下面来一步步实现怎么用java来为你创建一个女朋友

首先定义一个女朋友类:

package nuoyanli;

/**
 * Created by ${nuoyanli} on 2019/4/7.
 */

public class GirlFriend {
    private String sex;//性别
    private int age;//年龄
    private int stature;//身高
    private int weight;//体重
    private String type;//类型
}

按照我们以往的理解,要创建一个女朋友是不是要直接new出来,我们可以通过构造方法把属性传过去 
例如:我对女朋友的要求只有一个,是女的就行,定义一个构造方法:

public GirlFriend(String sex) {
        this.sex = sex;
    }

然后再需要的时候来创建她:

  GirlFriend girlFriend = new GirlFriend("女");

如果我们要求性别和身高就要定义:

 public GirlFriend(String sex, int stature) {
        this.sex = sex;
        this.stature = stature;
    }

你想想每个人的要求都不一样,你得创建多少个构造方法,而且参数多了,可读性很差比如:

 GirlFriend girlFriend = new GirlFriend("女",19,170,90,"声优");

java有一个建造者模式:

建造一个GirlFriendBuilder类:

package nuoyanli;

/**
 * Created by ${nuoyanli} on 2019/4/7.
 */

public class GirlFriendBuilder {
     String sex;//性别
     int age;//年龄
     int stature;//身高
     int weight;//体重
     String type;//类型

    public GirlFriendBuilder setSex(String sex) {
        this.sex = sex;
        return this;
    }

    public GirlFriendBuilder setAge(int age) {
        this.age = age;
        return this;
    }

    public GirlFriendBuilder setStature(int stature) {
        this.stature = stature;
        return this;
    }

    public GirlFriendBuilder setWeight(int weight) {
        this.weight = weight;
        return this;
    }

    public GirlFriendBuilder setType(String type) {
        this.type = type;
        return this;
    }

    /**
     *返回一个GirlFriend对象
     */
    public GirlFriend build() {
        return new GirlFriend(this);
    }
}

然后在GirlFriend类里面构造方法传入GirlFriendBuilder对象:

public GirlFriend(GirlFriendBuilder builder) {
        this.sex = builder.sex;
        this.age = builder.age;
        this.stature = builder.stature;
        this.weight = builder.weight;
        this.type = builder.type;
    }

然后创建的时候:

GirlFriend girlFrie1nd = new GirlFriendBuilder()
                .setAge(19)
                .setSex("女")
                .setType("声优")
                .setStature(175)
                .build();

这样就成功创建了一个女朋友,代码的可读性也挺高的

如果对这个女朋友不满意,可以自定义属性哦,由于笔者水平有限,并且找不到女朋友所以只能先new一个girFriend对象