java中的工厂模式分为三种,第一是:简单的工厂模式,
第二是:工厂方法,
第三是:抽象工厂
下面来看看各种工厂模式是个怎么实现的方法,第一种是简单的工厂模式:
package excise;
//import excise.Fruit;
interface Fruit1 {
public void eat();
}
class Apple implements Fruit1{
public void eat(){
System.out.println("我在吃苹果");
}
}
class Banana implements Fruit1{
public void eat(){
System.out.println("我在吃香蕉");
}
}
public class DesignPattern2 {
public static Fruit1 factory(String str) throws Exception{
if(str.equals("Apple")){
return new Apple();
}else if(str.equals("Banana")){
return new Banana();
}else{
throw new Exception("没有该产品");
}
}
public static void main(String args[]){
try{
DesignPattern2.factory("Banana").eat();
DesignPattern2.factory("Apple").eat();
DesignPattern2.factory("Ae").eat();
}catch(Exception e){
e.printStackTrace();
}
}
}
再来看看工厂方法,这种方法过于繁琐,如果有产前上万的商品,简直就是灾难:
package excise;
interface Factory{
public Product create();
}
interface Product{}
class Washer implements Product{
public Washer(){
System.out.println("洗衣机被制造了");
}
}
class Icebox implements Product{
public Icebox(){
System.out.println("冰箱被制造了");
}
}
class AirCondition implements Product{
public AirCondition(){
System.out.println("空调被制造了");
}
}
class CreateWasher implements Factory{
public Product create(){
return new Washer();
}
}
class CreateIcebox implements Factory{
public Product create(){
return new Icebox();
}
}
class CreateAirCondition implements Factory{
public Product create(){
return new AirCondition();
}
}
public class DesignPattern2 {
public static void main(String args[]){
Factory f=new CreateAirCondition();
f.create();
}
}