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

2014-11-24 02:25:20 · 作者: · 浏览: 0

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");
}

}
}

本文出自 “飞沙” 博客