java_abstract factory

来源:互联网 发布:网络名称侵权司法解释 编辑:程序博客网 时间:2024/05/21 17:02

instroduction:

多个抽象角色使用的一种工厂模式,抽象工厂模式可以向用户提供一种接口,使用户在不指定产品的具体情况下,创建多个产品族中的产品对象。

demo:

description:

目前有pc mac 两大系列产品

产品结构有:ram cpu两种

1.首先定义ram 和cpu两种产品结构:

Cpu.java

public interface Cpu {}


PcCpu.java

public class PcCpu implements Cpu{    public PcCpu(){        System.out.println("Pc Cpu");    }}

MacCpu.java

public class MacCpu implements Cpu{    public MacCpu(){        System.out.println("Mac Cpu");    }}

Ram.java

public interface Ram {}

PcRam.java

public class PcRam implements Ram{    public PcRam(){        System.out.println("Pc Ram");    }}

MacRam.java

public class MacRam implements Ram{    public MacRam(){        System.out.println("Mac Ram");    }}

2.定义抽象工厂:

ComputerProducer.java

public interface ComputerProducer {    Cpu createCpu();    Ram createRam();}
MacProducer.java

public class MacProducer implements ComputerProducer{    @Override    public Cpu createCpu() {        return new MacCpu();    }    @Override    public Ram createRam() {        return new MacRam();    }    }

PcProducer.java

public class PcProducer implements ComputerProducer{    @Override    public Cpu createCpu() {        return new PcCpu();    }    @Override    public Ram createRam() {        return new PcRam();    }}

3.测试

Test.java

public class Test {    public static void main(String[] args) {        ComputerProducer mac = new MacProducer();        mac.createCpu();        mac.createRam();        ComputerProducer pc = new PcProducer();        pc.createCpu();        pc.createRam();    }}

输出结果:

Mac Cup
Mac Ram
Pc Cpu
Pc Ram



原创粉丝点击