抽象工厂模式(Abstract Factory)
@@@模式定义:
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
@@@练习示例:
选择组装电脑的配件。
@@@示例代码:
src\computer\CPUApi.java
~~~~~~~~~~~~~~~~~~~~~~~~
[java]
package computer;
/**
* CPU的接口
*/
public interface CPUApi {
/**
* 示意方法,CPU具有运算的功能
*/
public void calculate();
}
package computer;
/**
* CPU的接口
*/
public interface CPUApi {
/**
* 示意方法,CPU具有运算的功能
*/
public void calculate();
}
src\computer\IntelCPU.java
~~~~~~~~~~~~~~~~~~~~~~~~~~
[java]
package computer;
/**
* Intel的CPU实现
*/
public class IntelCPU implements CPUApi {
/**
* CPU的针脚数目
*/
private int pins = 0;
/**
* 构造方法,传入CPU的针脚数目
* @param pins CPU的针脚数目
*/
public IntelCPU(int pins) {
this.pins = pins;
}
public void calculate() {
System.out.println("now in Intel CPU, pins=" + pins);
}
}
package computer;
/**
* Intel的CPU实现
*/
public class IntelCPU implements CPUApi {
/**
* CPU的针脚数目
*/
private int pins = 0;
/**
* 构造方法,传入CPU的针脚数目
* @param pins CPU的针脚数目
*/
public IntelCPU(int pins) {
this.pins = pins;
}
public void calculate() {
System.out.println("now in Intel CPU, pins=" + pins);
}
}src\computer\AMDCPU.java
~~~~~~~~~~~~~~~~~~~~~~~~
[java]
package computer;
/**
* AMD的CPU实现
*/
public class AMDCPU implements CPUApi {
/**
* CPU的针脚数目
*/
private int pins = 0;
/**
* 构造方法,传入CPU的针脚数目
* @param pins CPU的针脚数目
*/
public AMDCPU(int pins) {
this.pins = pins;
}
public void calculate() {
System.out.println("now in AMD CPU, pins=" + pins);
}
}
package computer;
/**
* AMD的CPU实现
*/
public class AMDCPU implements CPUApi {
/**
* CPU的针脚数目
*/
private int pins = 0;
/**
* 构造方法,传入CPU的针脚数目
* @param pins CPU的针脚数目
*/
public AMDCPU(int pins) {
this.pins = pins;
}
public void calculate() {
System.out.println("now in AMD CPU, pins=" + pins);
}
}src\computer\MainBoardApi.java
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[java]
package computer;
/**
* 主板的接口
*/
public interface MainBoardApi {
/**
* 示意方法,主板具有安装CPU的功能
*/
public void installCPU();
}
package computer;
/**
* 主板的接口
*/
public interface MainBoardApi {
/**
* 示意方法,主板具有安装CPU的功能
*/
public void installCPU();
}src\computer\GAMainBoard.java
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[java]
package computer;
/**
* 技嘉的主板实现
*/
public class GAMainBoard implements MainBoardApi {
/**
* CPU插槽的孔数
*/
private int cpuHoles = 0;
/**
* 构造方法, 传入CPU插糟的孔数
*/
public GAMainBoard(int cpuHoles) {
this.cpuHoles = cpuHoles;
}
public void installCPU() {
System.out.println("now in GAMainBoard, cpuHoles=" + cpuHoles);
}
}
package computer;
/**
* 技嘉的主板实现
*/
public class GAMainBoard implements MainBoardApi {
/**
* CPU插槽的孔数
*/
private int cpuHoles = 0;
/**
* 构造方法, 传入CPU插糟的孔数
*/
public GAMainBoard(int cpuHoles) {
this.cpuHoles = cpuHoles;
}
public void installCPU() {
System.out.println("now in GAMainBoard, cpuHoles=" + cpuHoles);
}
}src\computer\MSIMainBoard.java
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[java]
package computer;
/**
* 微星的主板实现
*/
public class MSIMainBoard implements MainBoardApi {
/**
* CPU插槽的孔数
*/
private int cpuHoles = 0;
/**
* 构造方法, 传入CPU插糟的孔数
*/
public MSIMainBoard(int cpuHoles) {
this.cpuHoles = cpuHoles;
}
public void installCPU() {
System.out.println("now in MSIMainBoard, cpuHoles=" + cpuHoles);
}
}
package computer;
/**
* 微星的主板实现
*/
public class MSIMainBoard implements MainBoardApi {
/**
* CPU插槽的孔数
补充:软件开发 , Java ,