建造者模式

来源:互联网 发布:linux查看端口状态 编辑:程序博客网 时间:2024/06/04 23:35

前言

上周没有拉下的这周补回来。

建造者模式

基本结构

phone: 要创建的对象,拥有自己的基本成员变量和方法

public class Phone {    private String mCpu;    private String mRam;    private String mScreen;    public void setCpu(String cpu) {        mCpu = cpu;        System.out.println("使用"+cpu+"处理器");    }    public void setRam(String ram) {        mRam = ram;        System.out.println("拥有"+ram+"内存");    }    public void setScreen(String screen) {        mScreen = screen;        System.out.println("使用"+screen+"屏幕");    }}

builder: 抽象的建造者类,规定创建的条件

public abstract class Builder {    public abstract void buildCpu(String cpuName);    public abstract void buildScreen(String screenName);    public abstract void bulidRam(String ramName);    public abstract Phone creatPhone();}

concreteBuilder: 具体的创建类,创建要创建的类的实例,并在对应的方法里传值

public class ConcreteBuilder extends Builder {    private Phone mPhone;    public ConcreteBuilder(){        mPhone=new Phone();    }    @Override    public void buildCpu(String cpuName) {        mPhone.setCpu(cpuName);    }    @Override    public void buildScreen(String screenName) {        mPhone.setScreen(screenName);    }    @Override    public void bulidRam(String ramName) {        mPhone.setRam(ramName);    }    @Override    public Phone creatPhone() {        return mPhone;    }}

director: 指导创建建造者的类,

public class Diretor {    private Builder mBuilder;    public Diretor(Builder builder){        mBuilder=builder;    }    public void creatBuilder(String cpu,String screen,String ram){        mBuilder.buildCpu(cpu);        mBuilder.buildScreen(screen);        mBuilder.bulidRam(ram);        mBuilder.creatPhone();    }}

main方法测试:

//建造者模式测试方法    private  static void testBuilder(){        ConcreteBuilder concreteBuilder=new ConcreteBuilder();        Diretor diretor=new Diretor(concreteBuilder);        diretor.creatBuilder("联发科","大猩猩玻璃","8G");    }

输出结果:

使用联发科处理器使用大猩猩玻璃屏幕拥有8G内存

个人总结

这是标准的建造者模式,在Android中使用的建造者模式是在此基础上改进,更加灵活。

原创粉丝点击