簡單工廠模式

簡單工廠模式java

  我有一個水果工廠負責生產 蘋果和橘子app

  這個時候我有一個水果的抽象接口,全部水果都來實現這個接口ide

  

// 水果的接口

public interface Fruit {
public String getTaste();
public String getName();
}
//蘋果的實現類

public class Apple implements Fruit{
@Override
public String getTaste() {
return "個人味道有點甜";
}

@Override
public String getName() {
return "個人名字叫蘋果";
}
}
//橘子的實現類


public class Orange implements Fruit{
@Override
public String getTaste() {
return "個人味道有點酸";
}

@Override
public String getName() {
return "個人名字叫橘子";
}
}

//工廠類


public class FruitFactory {
public static Fruit createFruit(String fruitName){
Fruit fruit=null;
switch (fruitName){
case "apple":
fruit=new Apple();
break;
case "orange":
fruit=new Orange();
break;
default:
System.out.println("沒有匹配的水果可生產");
break;
}
return fruit;
}
}

   這樣經過這個工廠就能由客戶決定生產什麼水果ui


public class Customer {
public static void main(String[] args) {
Fruit fruit=FruitFactory.createFruit("apple");
System.out.println(fruit.getName());
System.out.println(fruit.getTaste());
Fruit origin=FruitFactory.createFruit("orange");
System.out.println(origin.getName());
System.out.println(origin.getTaste());

}
}

 

這樣就能獲得客戶想要的東西,而客戶並不知道如何實現的生產過程spa

可是也有一個缺點就是,老闆過來講,咱們的銷量太好了,準備添加其餘水果,小李啊你來搞一下,小李一看,這沒辦法只能改源代碼啊,因而乎就違反了開閉原則。blog

所謂的開閉原則,就是寫完的代碼不要老改動,而是去拓展接口

這也就是簡單工廠模式的缺點get

進而出現了工廠模式,工廠模式是簡單工廠模式的拓展和抽象it

相關文章
相關標籤/搜索