android开发-设计模式(三)

建造者模式

建造者模式是生成器模式,是创建一个复杂对象额创建型模式,

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

在建造者模式中有如下角色:

Director:导演类,负责安排已有模块的顺序,然后通知Builder开始建造

Builder: 抽象Builder类,规范产品的组件,一般由子类实现。

ConcreteBulider: 具体建造者,实现抽象类Builder类定义的所有方法,并且返回一个组建好的对象

Product: 产品类

1.建造者模式的简单实现

1.1创建产品类

组装一台计算机,呗抽象为Computer类,有Cpu,主板,内存,并设置三个方法来设置Cpu、主板、内存

public class Computer
{
    private String mCpu;
    private String mMainboard;
    private String mRam;

    public String getmCpu()
    {
        return mCpu;
    }

    public void setmCpu(String mCpu)
    {
        this.mCpu = mCpu;
    }

    public String getmMainboard()
    {
        return mMainboard;
    }

    public void setmMainboard(String mMainboard)
    {
        this.mMainboard = mMainboard;
    }

    public String getmRam()
    {
        return mRam;
    }

    public void setmRam(String mRam)
    {
        this.mRam = mRam;
    }
}

1.2创建Builder类规范产品的组建

生成一个Builder抽象类为安装提供方法

public abstract class Builder
{
    public abstract void builderCpu(String s);

    public abstract void buildermMainboard(String s);

    public abstract void builderRam(String s);

    public abstract Computer creater();
}

实现Builder组装电脑

public class MoonComputerBuilder extends Builder
{
    private Computer computer = new Computer();

    @Override
    public void builderCpu(String s)
    {
        computer.setmCpu("英特尔");
    }

    @Override
    public void buildermMainboard(String s)
    {
        computer.setmMainboard("微星");
    }

    @Override
    public void builderRam(String s)
    {
        computer.setmRam("镁光");
    }

    @Override
    public Computer creater()
    {
        return computer;
    }
}

1.3导演类统一组装电脑

也可以使用导演类用来规范组装电脑

public class Director
{
    Builder builder = null;

    public Director(Builder builder)
    {
        this.builder = builder;
    }

    public Computer CreateComputer(String cpu, String Main, String Ram)
    {
        builder.builderCpu(cpu);
        builder.buildermMainboard(Main);
        builder.builderRam(Ram);
        return builder.creater();
    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值