簡單工廠模式
- 概述:簡單工廠用于根據需求,自動創建類。又叫做靜態工廠。
- 有點:客戶端不需要在負責對象的創建,從而明確了各個類的職責。(防止濫用)
- 缺點:這個靜態工廠負責所有對象的創建,如果有新的對象增加,侯喆某些對象的創建方式不同,就需要不斷的修改工廠類,不利于后期的維護。
public class Demo { public static void main(String[] args) { // 獲取貓對象 Cat $cat = (Cat) AnimalFactory.create("cat"); $cat.eat(); // 獲取狗對象 Dog $dog = (Dog) AnimalFactory.create("dog"); $dog.eat(); } } /** * 動物抽象類的簡單工廠,專門負責創建Animal的子類 */ class AnimalFactory { public static Animal create(String $Name) { switch ($Name.toLowerCase()) { case "cat": return new Cat(); case "dog": return new Dog(); default: return null; } } } abstract class Animal { abstract void eat(); } class Cat extends Animal { @Override void eat() { System.out.println("貓吃魚"); } } class Dog extends Animal { @Override void eat() { System.out.println("狗吃肉"); } }