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