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