基本概念

建造者模式的作用:

  • 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

建造者模式的角色:

  • Product,即产品,表示被建造的对象。该对象一定是个复杂对象,由各个部件组合而成。

  • Builder,即建造者接口,它的作用为创造产品的各个部件。

  • ConcreteBuilder,即具体的建造者,用于创建具体的产品部件。

  • Director,即指挥者,负责通过调用不同的建造者,建造并组装成不同的产品。


实例探究

  • Product,产品。表示人。

    public class Person {
        private String head;
        private String body;
        private String foot;
    
        // 省略 getter、setter
    }

  • Builder,建造者接口。这里用抽象类表示,表示创建一个人。

    public abstract class PersonBulider {
    
        protected Person person = new Person();
    
        abstract void bulidHead();
    
        abstract void bulidBody();
    
        abstract void bulidFoot();
    
        Person builderPerson() {
            return person;
        }
    }

  • ConcreteBuilder,具体的建造者,表示创建一个男人。

    public class ManBulider extends PersonBulider {
    
        @Override
        void bulidHead() {
            person.setHead("男人的头部");
        }
    
        @Override
        void bulidBody() {
            person.setBody("男人的身体");
        }
    
        @Override
        void bulidFoot() {
            person.setFoot("男人的脚部");
        }
    }

  • Director,指挥者。表示指挥不同的建造者建造不同的产品。

    public class PersonDirecter{
        public Person AssemblePerson(PersonBulider builder){
            builder.bulidHead();
            builder.bulidBody();
            builder.bulidFoot();
            return builder.builderPerson();
        }
    }

  • 具体调用如下:

    PersonDirecter directer = new PersonDirecter();
    Person person = directer.AssemblePerson(new ManBuilder());
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐