publicclassFruitFactory{publicstatic Fruit getFruit(String type){if(type==null){return null;}if(type.equalsIgnoreCase("apple")){returnnewApple();}elseif(type.equalsIgnoreCase("banana")){returnnewBanana();}return null;}}
测试类
publicclassMainClass{publicstaticvoidmain(String[] args){//实例化Apple
Fruit apple = FruitFactory.getFruit("apple");//实例化banana
Fruit banana = FruitFactory.getFruit("BAnana");
apple.get();
banana.get();}}
publicinterfaceFruitFactory{//实例化苹果
Fruit getApple();//实例化香蕉
Fruit getBanana();}
具体工厂角色
publicclassNorthFruitFactoryimplementsFruitFactory{@Overridepublic Fruit getApple(){returnnewNorthApple();}@Overridepublic Fruit getBanana(){returnnewNorthBanana();}}
publicclassSouthFruitFactoryimplementsFruitFactory{@Overridepublic Fruit getApple(){returnnewSouthApple();}@Overridepublic Fruit getBanana(){returnnewSouthBanana();}}
测试类
publicclassMainClass{publicstaticvoidmain(String[] args){
NorthFruitFactory nff =newNorthFruitFactory();
SouthFruitFactory sff =newSouthFruitFactory();
Fruit napple = nff.getApple();
napple.get();
Fruit nbanana = nff.getBanana();
nbanana.get();
Fruit sapple = sff.getApple();
sapple.get();
Fruit sbanana = sff.getBanana();
sbanana.get();}}