栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

大话设计模式-建造者模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

大话设计模式-建造者模式

1. 建造接口类:画小人

package com.hj.designPattern.build;

public interface IBuildPerson {
    void drawHead();
    void drawBody();
    void drawArms();
    void drawLegs();
    // 建造结果
    void resultPerson();
}

 2. 建造的产品:人

package com.hj.designPattern.build;

import lombok.Data;

@Data
public class Person {
    private String head;
    private String body;
    private String arms;
    private String legs;

    public void result(){
        System.out.println(getHead()+getBody()+getArms()+getLegs());
    }
}

3. 具体建造类:画胖人

package com.hj.designPattern.build;

public class BuildFatPerson implements IBuildPerson {
    private Person person = new Person();
    BuildFatPerson() {
    }
    @Override
    public void drawHead() {
        person.setHead("大头");
        System.out.println("第一步画头");
    }

    @Override
    public void drawBody() {
        person.setBody("强壮的身体");
        System.out.println("第二步画身体");
    }

    @Override
    public void drawArms() {
        person.setArms("粗壮的胳膊");
        System.out.println("第三步画胳膊");
    }

    @Override
    public void drawLegs() {
        person.setLegs("粗壮的大腿");
        System.out.println("第四步画大腿");
    }

    @Override
    public void resultPerson() {
        person.result();
    }
}

4. 画瘦人

package com.hj.designPattern.build;

public class BuildThinPerson implements IBuildPerson {
    Person person = new Person();
    @Override
    public void drawHead() {
        person.setHead("小头");
        System.out.println("第一步画头");
    }

    @Override
    public void drawBody() {
        person.setBody("瘦小的身体");
        System.out.println("第二步画身体");
    }

    @Override
    public void drawArms() {
        person.setArms("细小的胳膊");
        System.out.println("第三步画胳膊");
    }

    @Override
    public void drawLegs() {
        person.setLegs("细小的腿");
        System.out.println("第四步画大腿");
    }

    @Override
    public void resultPerson() {
        person.result();
    }
}

5. 指挥者,按顺序画各部位:

package com.hj.designPattern.build;

public class Director {
    private IBuildPerson builder;
    Director(IBuildPerson builder){
        this.builder = builder;
    }
    public void direct(){
        builder.drawHead();
        builder.drawBody();
        builder.drawArms();
        builder.drawLegs();
    }

}

6. 测试类

package com.hj.designPattern.build;

public class BuilderTest {
    public static void main(String[] args) {
        IBuildPerson fatPersonBuilder = new BuildFatPerson();
        Director director = new Director(fatPersonBuilder);
        director.direct();
        fatPersonBuilder.resultPerson();

        IBuildPerson thinPersonBuilder = new BuildThinPerson();
        director = new Director(thinPersonBuilder);
        director.direct();
        thinPersonBuilder.resultPerson();
    }
}

7. 运行结果

第一步画头
第二步画身体
第三步画胳膊
第四步画大腿
大头强壮的身体粗壮的胳膊粗壮的大腿
第一步画头
第二步画身体
第三步画胳膊
第四步画大腿
小头瘦小的身体细小的胳膊细小的腿

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/929981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号