当前位置:编程学习 > JAVA >>

抽象工厂模式(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 ,

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,