b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

解释器设计模式_lua解释器交互模式_解释器模式c语言(3)

电脑杂谈  发布时间:2017-02-22 18:11:38  来源:网络整理

1 和简单工厂一样,我们需要产品接口和具体的产品

2 不同的产品对应不同的工厂,所以我们需要抽象的工厂和具体的工厂(个人觉得和使用反射的简单工厂相比,仅仅只是减少了反射带来的风险。当然,另一个好处是一个具体的工厂可以有不同的创建方法)

abstract class AbstractFactory {
    public abstract IProduct createProduct();
}
public class FactoryA extends AbstractFactory{

    @Override
    public IProduct createProduct() {
        return new ConcreteProductA();
    }
}
public class FactoryB extends AbstractFactory {
    @Override
    public IProduct createProduct() {
        return new ConcreteProductB();
    }
}

为创建一组相关或相互依赖的对象(即产品族)提供一个借口,无需指定它们的具体类,我们使用了抽象工厂

举个简单的例子,生产电脑

1 假设我们需要不同型号的CPU和主板。我们需要CPU接口-具体实现,主板接口-具体实现

public intece Cpu {
    void calculate();
}
public class IntelCpu implements Cpu{
    private int pins = 0;

    public IntelCpu(int pins) {
        this.pins = pins;
    }
    @Override
    public void calculate() {
        System.out.println("Intel CPU的针脚数:" + pins);
    }
}
public class AmdCpu implements Cpu {
    private int pins = 0;

    public AmdCpu(int pins) {
        this.pins = pins;
    }

    @Override
    public void calculate() {
        System.out.println("AMD CPU的针脚数:" + pins);
    }
}
public intece Mainboard {
    void installCPU();
}
public class IntelMainboard implements Mainboard {
    private int cpuHoles = 0;

    public IntelMainboard(int cpuHoles) {
        this.cpuHoles = cpuHoles;
    }
    @Override
    public void installCPU() {
        System.out.println("Intel主板的CPU插槽孔数是:" + cpuHoles);
    }
}
public class AmdMainboard implements Mainboard {
    private int cpuHoles = 0;

    public AmdMainboard(int cpuHoles) {
        this.cpuHoles = cpuHoles;
    }

    @Override
    public void installCPU() {
        System.out.println("AMD主板的CPU插槽孔数是:" + cpuHoles);
    }
}


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-33899-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...