博客
关于我
建造者模式
阅读量:686 次
发布时间:2019-03-17

本文共 1259 字,大约阅读时间需要 4 分钟。

建造者模式(Builder Pattern)是一种软件设计模式,其核心理念是将对象的创建工作分解给特化的建造者,使开发者无需直接处理复杂的对象创建逻辑。

在建造者模式中,主要角色包括:

  • Builder:提供一个抽象接口,规定需要创建的对象各部分的组成要素。
  • ConcreteBuilder:实现Builder接口,负责实际构建对象的具体部分。
  • Director:负责协调不同ConcreteBuilder的工作,确保对象按正确顺序和规则创建完成。
  • Product:由Builder组合完成的最终对象形式。
  • 这种模式特别适用于以下场景:

    • 需要构建具有复杂内部结构的对象。
    • 对象的属性之间具有相互依赖关系。

    典型的Java应用实例包括:

    • StringBuilder类作为StringBuffer的延伸。
    • ZK客户端Curator。
    • MyBatis的ParameterMapping特性。

    以下是一个实际的实现示例:

    public class Person {    private String name;    private int age;    public Person(String name, int age) {        this.name = name;        this.age = age;    }    // getters和setters}public interface PersonBuilder {    Person build();}public class ManBuilder implements PersonBuilder {    private String name;    private int age;    public ManBuilder setName(String name) {        this.name = name;        return this;    }    public ManBuilder setAge(int age) {        this.age = age;        return this;    }    public Person build() {        return new Person(name, age);    }}public class Test {    public static void main(String[] args) {        Person person = new ManBuilder()                .setName("s")                .setAge(2)                .build();        System.out.println(person);    }}

    这种实现方式允许开发者通过配置各个属性,然后只需调用build方法即可得到完整的Person对象。

    转载地址:http://xvkhz.baihongyu.com/

    你可能感兴趣的文章
    mysql返回的时间和实际数据存储的时间有误差(java+mysql)
    查看>>
    mysql还有哪些自带的函数呢?别到处找了,看这个就够了。
    查看>>
    Mysql进入数据库
    查看>>
    mysql进阶 with-as 性能调优
    查看>>
    mysql进阶-查询优化-慢查询日志
    查看>>
    wargame narnia writeup
    查看>>
    MySQL进阶篇SQL优化(InnoDB锁问题排查与解决)
    查看>>
    Mysql进阶索引篇03——2个新特性,11+7条设计原则教你创建索引
    查看>>
    Mysql连接时报时区错误
    查看>>
    mysql逗号分隔的字符串如何搜索
    查看>>
    MYSQL遇到Deadlock found when trying to get lock,解决方案
    查看>>
    MYSQL遇到Deadlock found when trying to get lock,解决方案
    查看>>
    mysql部署错误
    查看>>
    MySQL配置信息解读(my.cnf)
    查看>>
    Mysql配置文件my.ini详解
    查看>>
    MySQL配置文件深度解析:10个关键参数及优化技巧---强烈要求的福利来咯。
    查看>>
    Mysql配置表名忽略大小写(SpringBoot连接表时提示不存在,实际是存在的)
    查看>>
    mysql配置读写分离并在若依框架使用读写分离
    查看>>
    MySQL里为什么会建议不要使用SELECT *?
    查看>>
    MySQL里的那些日志们
    查看>>