详解java创建一个女朋友类(对象啥的new一个就是)==建造者模式,一键重写

 更新时间:2019年04月18日 16:31:08   作者:nuoyanli  
这篇文章主要介绍了java建造者模式一键重写,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

相比如文字解释,我更习惯撸代码来解释,下面来一步步实现怎么用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对象

以上所述是小编给大家介绍的java建造者模式一键重写详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Java中的NoSuchMethodException异常原因以及解决方案详解

    Java中的NoSuchMethodException异常原因以及解决方案详解

    这篇文章主要介绍了Java中的NoSuchMethodException异常原因以及解决方案详解,NoSuchMethodException是Java反射机制中的异常,在尝试通过反射获取方法时,找不到指定的方法,通常发生在调用 Class 对象的方法时,当方法名或方法参数不匹配时抛出该异常,需要的朋友可以参考下
    2024-02-02
  • 深入浅出理解Java泛型的使用

    深入浅出理解Java泛型的使用

    这篇文章主要介绍了深入浅出理解Java泛型的使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Spring框架基于注解开发CRUD详解

    Spring框架基于注解开发CRUD详解

    这篇文章主要为大家详细介绍了Spring框架基于注解开发CRUD,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 关于两个BeanUtils.copyProperties()的用法及区别

    关于两个BeanUtils.copyProperties()的用法及区别

    这篇文章主要介绍了关于两个BeanUtils.copyProperties()的用法及区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • IDEA如何修改配置文件的存放位置

    IDEA如何修改配置文件的存放位置

    这篇文章主要介绍了IDEA如何修改配置文件的存放位置,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • window版 IntelliJ IDEA 快捷键图文教程

    window版 IntelliJ IDEA 快捷键图文教程

    本文通过图文并茂的形式给大家介绍了window版 IntelliJ IDEA 快捷键的操作方法,需要的朋友参考下吧
    2018-02-02
  • Spring配置文件解析之BeanDefinitionDocumentReader详解

    Spring配置文件解析之BeanDefinitionDocumentReader详解

    这篇文章主要介绍了Spring配置文件解析之BeanDefinitionDocumentReader详解,Spring的xml配置文件解析成Document对象,接下来的解析处理工作是在BeanDefinitionDocumentReader中对Document对象进行解析,需要的朋友可以参考下
    2024-02-02
  • java并发编程之同步器代码示例

    java并发编程之同步器代码示例

    这篇文章主要介绍了java并发编程之同步器代码示例,分享了相关代码,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • vue3实现一个todo-list

    vue3实现一个todo-list

    这篇文章主要为大家详细介绍了基于vuejs实现一个todolist项目,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能给你带来帮助
    2021-08-08
  • java实现无符号数转换、字符串补齐、md5、uuid、随机数示例

    java实现无符号数转换、字符串补齐、md5、uuid、随机数示例

    这篇文章主要介绍了java实现无符号数转换、字符串补齐、md5、uuid、随机数示例,需要的朋友可以参考下
    2014-04-04

最新评论