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

设计模式-<抽象工厂模式>

package 抽象工厂;

public class AbstractFactory {
  /**
    * @param args
    */
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    //我要一个IBM 电脑用得 网卡
    AnableFactory.createMac(new IBMMac(),"computer");
    //我要一个IBM 手机用得 网卡
    AnableFactory.createMac(new IBMMac(),"手机");
    //我要一个IBM 电脑用得 CPU
    AnableFactory.createCup(new IBMCup(),"computer");
    //我要一个IBM 手机用得 CPU
    AnableFactory.createCup(new IBMCup(),"手机");
  }

   
  /**
    * 抽象工厂注重 具体事务具体干
    * 这次抽出2个接口来
    * 分别制造Cup和Mac
    */
  private static abstract class AnableFactory{
    public AnableFactory()
    {
      System.out.println(AbstractFactory.class.getCanonicalName()+"开始工作");
    }
    public static void createCup(CupFactory cupFactory,String type) {
      if(type.equals("computer")){
         cupFactory.createComputerCup();
      }
      else{
        cupFactory.createMobleCup();
      }
    }
    public static void createMac(MacFactory cacFactory,String type)
    {
      if(type.equals("computer")){
        cacFactory.createComputerMac();
      }
      else{
        cacFactory.createMobleMac();
      }
    }
  }
  /*
    * CUP区
    */
  private static abstract class CupFactory extends AnableFactory{
    void createComputerCup(){};
    void createMobleCup(){};
  }
  public static class IBMCup extends CupFactory{

    public void createComputerCup() {
      // TODO Auto-generated method stub
      System.out.println("IBM create Computer Cup");
    }

    public void createMobleCup() {
      // TODO Auto-generated method stub
      System.out.println("IBM create Moble Cup");
    }
    
  }
  public static class LevenvoCup extends CupFactory{

    public void createComputerCup() {
      // TODO Auto-generated method stub
      System.out.println("Levenvo create Moble Cup");
    }

    public void createMobleCup() {
      // TODO Auto-generated method stub
      System.out.println("Levenvo create Moble Cup");
    }
    
  }
   
  private static abstract class MacFactory extends AnableFactory{
    void createComputerMac(){};
    void createMobleMac(){};
  }
  public static class IBMMac extends MacFactory{

    public void createComputerMac() {
      // TODO Auto-generated method stub
      System.out.println("IBM create Computer Mac");
    }

    public void createMobleMac() {
      // TODO Auto-generated method stub
      System.out.println("IBM create Moble Mac");
    }

  }
  public static class LevenvoMac extends MacFactory{

    public void createComputerMac() {
      // TODO Auto-generated method stub
      System.out.println("Levenvo create Computer Mac");
    }

    public void createMobleMac() {
      // TODO Auto-generated method stub
      System.out.println("Levenvo create Moble Mac");
    }
    
  }
}

 

本文出自 “飞沙” 博客

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,