設計模式-簡單工廠模式概述和使用-介面
簡單工廠模式概述:
又叫靜態工廠方法模式,它定義一個具體的工廠類負責建立一些類的例項
優點:
客戶端不需要再負責物件的建立,從而明確了各個類的職責
缺點:
這個靜態工廠類負責所有物件的建立,如果有新的物件增加,或者某些物件的建立方式不同,
就需要不斷地修改工廠類,不利於後期的維護
package cn.itcast_01;
public abstract class Animal {
public abstract void eat();
}
package cn.itcast_01;
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("貓吃魚");
}
}
package cn.itcast_01;
public class Dog extends Animal {
@Override
public void eat() {
System.out.println("狗吃肉");
}
}
package cn.itcast_01;
public class AnimalFactory {
private AnimalFactory() {
}
// public static Dog createDog() {
// return new Dog();
// }
//
// public static Cat createCat() {
// return new Cat();
// }
public static Animal createAnimal(String type) {
if ("dog".equals(type)) {
return new Dog();
} else if ("cat".equals(type)) {
return new Cat();
} else {
return null;
}
}
}
package cn.itcast_01;
public class AnimalDemo {
public static void main(String[] args) {
// 具體類呼叫
Dog d = new Dog();
d.eat();
Cat c = new Cat();
c.eat();
System.out.println("------------");
// 工廠有了後,通過工廠給造
// Dog dd = AnimalFactory.createDog();
// Cat cc = AnimalFactory.createCat();
// dd.eat();
// cc.eat();
// System.out.println("------------");
// 工廠改進後
Animal a = AnimalFactory.createAnimal("dog");
a.eat();
a = AnimalFactory.createAnimal("cat");
a.eat();
a = AnimalFactory.createAnimal("pig");// NullPointerException
if (a != null) { // 出現空指標,要加判斷
a.eat();
} else {
System.out.println("對不起,暫時不提供這種動物");
}
}
}
相關文章
- 設計模式-工廠方法模式的概述和使用-介面設計模式
- 設計模式之工廠模式!深入解析簡單工廠模式,工廠方法模式和抽象工廠模式設計模式抽象
- 設計模式-簡單工廠、工廠方法模式、抽象工廠模式設計模式抽象
- 設計模式 - 簡單工廠模式設計模式
- 【設計模式】簡單工廠模式設計模式
- 設計模式——簡單工廠模式設計模式
- 設計模式-簡單工廠模式設計模式
- C# 設計模式(1)——簡單工廠模式、工廠模式、抽象工廠模式C#設計模式抽象
- 【Java】簡單工廠模式、工廠模式、介面卡模式Java模式
- 設計模式之簡單工廠模式設計模式
- java設計模式-簡單工廠模式Java設計模式
- 設計模式(一)—— 簡單工廠模式設計模式
- 簡單工廠模式(設計模式02)設計模式
- 設計模式----簡單工廠設計模式
- 簡單工廠模式和抽象工廠模式模式抽象
- 設計模式入門-簡單工廠模式設計模式
- golang設計模式之簡單工廠模式Golang設計模式
- 【Linux】設計模式-----簡單工廠模式Linux設計模式
- 大話設計模式:簡單工廠模式設計模式
- 【大話設計模式】——簡單工廠模式設計模式
- Java設計模式2:簡單工廠模式Java設計模式
- 簡單工廠和工廠模式模式
- Java設計模式(一) 簡單工廠模式不簡單Java設計模式
- Java設計模式之簡單工廠、工廠方法和抽象工廠Java設計模式抽象
- 設計模式(一):簡單工廠設計模式
- iOS設計模式 - 簡單工廠iOS設計模式
- 簡單工廠模式—>工廠模式模式
- 23種設計模式(一)---簡單工廠設計模式設計模式
- 設計模式 --並不簡單的工廠模式設計模式
- 設計模式系列之一:簡單工廠模式設計模式
- Yii2設計模式——簡單工廠模式設計模式
- Java常用設計模式之簡單工廠模式Java設計模式
- 簡單工廠和工廠方法模式模式
- 工廠模式之簡單工廠模式模式
- c#簡單工廠設計模式C#設計模式
- 極簡設計模式-工廠模式設計模式
- 簡單工廠模式、工廠模式、抽象工廠模式比較模式抽象
- 簡單工廠模式、工廠方法模式和抽象工廠模式有何區別?模式抽象