专栏首页关忆北.@Builder建造者模式

@Builder建造者模式

建造者模式:

1、定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 2、主要作用:在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象。 3、如何使用:用户只需要给出指定复杂对象的类型和内容,建造者模式负责按顺序创建复杂对象(把内部的建造过程和细节隐藏起来) 4、解决的问题: (1)、方便用户创建复杂的对象(不需要知道实现过程) (2)、代码复用性 & 封装性(将对象构建过程和细节进行封装 & 复用) 5、注意事项:与工厂模式的区别是:建造者模式更加关注与零件装配的顺序,一般用来创建更为复杂的对象

Lombok使用:

在创建一个类时,会使用写使用get/set方法

当我们使用了lombok之后,可以简化代码:

要注意的是,使用lombok是默认覆盖原来默认全部有参构造方法的,为解决这个问题,可以使用:@AllArgsConstructor注解,

使用**@Builder注解会覆盖无参构造方法,所以可以使用@NoArgsConstructor注解来实现默认无参构造方法。 这时候你就会发现,如果使用建造者模式给实体的每个字段进行赋值,会报错不兼容,这是因为@Builder注解与@NoArgsConstructor**注解冲突了, 所以,现在的全家福是

以上,我们就可以使用建造者模式了

        List<User> userList = new ArrayList<>();

        User user1 = User.builder().id(1).name("ONE").sex("1").build();
        User user2 = User.builder().id(2).name("ZERO").sex("0").build();
        User user3 = User.builder().id(3).name("TWO").sex("0").build();
        User user4 = User.builder().id(4).name("FOUR").sex("1").build();
        User user5 = User.builder().id(5).name("ONE").sex("1").build();

        //使用lombok没有无参构造方法,只有具有全部参数的构造方法
        User user = new User("1",1,"1");


        userList.add(user1);
        userList.add(user2);
        userList.add(user3);
        userList.add(user4);
        userList.add(user5);
        System.out.println("筛选前:" + userList);
        userList = userList.stream().filter(o -> o.getName().equals("ONE")).collect(Collectors.toList());
        System.out.println("筛选后:" + userList);
    }
本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!
本文分享自作者个人站点/博客:https://blog.csdn.net/weixin_42313773复制
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • builder(建造者)模式

    在平时工作中,创建一个对象的最常用的方式是通过new来实现。因为Go语言中没有构造函数,所以一般会定义一个NewObject() *Object函数实现类似其他...

    数据小冰
  • 建造者模式(Builder)

    qubianzhong
  • PHP Builder 建造者模式

    使用建造者设计模式不仅是最佳的做法,而且在某个对象的构造和配置方法改变时尽可能地减少重复的代码

    Marco爱吃红烧肉
  • 建造者模式(Builder Pattern)

    用户只需要给出指定复杂对象的类型和内容; 建造者模式负责按顺序创建复杂对象(把内部的建造过程和细节隐藏起来)

    用户1205080
  • 建造者模式 Builder Pattern

    Builder Pattern,是 Java 常用的设计模式之一。它提供了一种将多个简单对象一步步构建成一个复杂对象的能力。

    FoamValue
  • 建造者模式(Builder)及其应用

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gdutxiaoxu/article/details/...

    程序员徐公
  • 设计模式- 建造者模式(Builder Pattern)

    主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变...

    易兒善
  • 设计模式之建造者模式Builder

    实际代码我放在了Github: https://github.com/liangtengyu/DesignPatterns-for-Java

    Java宝典
  • 八、建造者模式 ( Builder Pattern )

    建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象

    botkenni
  • 设计模式之建造者模式(Builder 模式)

    建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

    海盗船长
  • Java设计模式(四)Builder建造者模式

    一、场景描述 建造者模式同工厂模式、抽象工厂模式一样,用于创建继承类对象。 工厂模式:http://www.cnblogs.com/mahongbiao/p/8...

    用户1637609
  • java设计模式(五)--建造者模式(Builder)

    转载:http://zz563143188.iteye.com/blog/1847029 工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来...

    Ryan-Miao
  • Android设计模式之建造者模式builder

    版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/lyhhj/article/details/49...

    Hankkin
  • 6.设计模式--建造者模式(Builder模式)

    举个例子:比如我要写一本书那么写这个书需要书名、作者、标题、内容等,但是这本书要创作完成需要一个人来创作吧,当然这个人就是作者,也可能不是(比如蹭书的编写作...

    大猫的Java笔记
  • 浅谈JAVA设计模式之——建造者模式(Builder)

    冰河
  • 设计模式(三)建造者模式Builder(创建型)

    在软件开发的过程中,当需要创建一个复杂对象时,该对象由多个子部件按一定算法组合而成,例如计算机(对象)是由 CPU、主板、内存、硬盘、显卡、机箱、...

    黄规速
  • Carson带你学设计模式:建造者模式(Builder Pattern)

    Carson.Ho
  • 设计模式的征途—6.建造者(Builder)模式

    建造者模式又称为生成器模式,它是一种较为复杂、使用频率也相对较低的创建型模式。建造者模式为客户端返回的不是一个简单的产品,而是一个由多个部件组成的复杂产品。因为...

    Edison Zhou
  • Mybatis初始化的builder建造者模式

    在Mybatis的初始化的主要工作是加载并解析mybatis-config.xml的配置文件、映射配置文件以及相关的注解信息。因为使用了建造者模式,BashBu...

    算法之名

扫码关注腾讯云开发者

领取腾讯云代金券