java,工厂方法种类(2)

来源:互联网 发布:无线网卡更改mac地址 编辑:程序博客网 时间:2024/05/20 09:21
package FactoryMethod;
class Product{}
class ProductA extends Product{}
class ProductB extends Product{}
/**
 * 工厂方法
 * @author L-Seven
 *
 */
public abstract class FactoryMethod {
public abstract Product getPruduct();
public static FactoryMethod chooseFactory(char factoryName){
switch (factoryName) {
case 'a':
return new FactoryA();
case 'b':
return new FactoryB();
default:
return null;
}
}
}
class FactoryA extends FactoryMethod{


@Override
public Product getPruduct() {
return new ProductA();
}

}
class FactoryB extends FactoryMethod{


@Override
public Product getPruduct() {
return new ProductB();
}

}
class FactoryMethodTest{
public static void main(String[] args) {
System.out.println(FactoryMethod.chooseFactory('a').getPruduct());
System.out.println(FactoryMethod.chooseFactory('b').getPruduct());
}
}