1. 程式人生 > >設計模式之普通工廠模式(Java實現版本)

設計模式之普通工廠模式(Java實現版本)

工廠模式是設計模式中非常容易理解的模式之一。簡單來說,工廠模式就是替代new操作的一種方式,比如我們去飯店要茶水,工廠就像是服務員,只要告訴服務員我要茶水,服務員就會把茶壺拿來,而不需要我們自己去拿茶水(好比於在main方法中直接new Tea();)

接下來貼上例子,為了方便,把所有的程式碼都寫在了一個檔案中。

//首先建立一個介面
interface Animal {
    public void print();
}

//建立一個Cat的類實現Animal介面
class Cat implements Animal {
    public void print() {
        System.out.println("貓");
    }
}

//建立一個Dog的類實現Animal介面
class Dog implements Animal {
    public void print() {
        System.out.println("狗");
    }
}

//建立一個Rabbit的類實現Animal介面
class Rabbit implements Animal {
    public void print() {
        System.out.println("兔子");
    }
}

建立完成相應的類後,就開始寫工廠類了,工廠的作用就是通過獲取到的資訊,返回相應的物件

//建立一個工廠類,根據給定的資訊生成具體的類的物件
class AnimalFactory {
    public Animal getAnimal (String animalType) {
        if ("cat".equals(animalType)) {
            return new Cat();
        } else if ("dog".equals(animalType)) {
            return new Dog();
        } else if ("rabbit".equals(animalType)) {
            return new Rabbit();
        } else {
            return null;
        }
    }
}

下面開始寫主方法

//通過傳遞不同的資訊(引數)給工廠來獲取不同的物件
public class FactoryDemo {
    public static void main(String[] args) {
        AnimalFactory factory = new AnimalFactory();
        Animal cat = factory.getAnimal("cat");
        cat.print();
        Animal dog = factory.getAnimal("dog");
        dog.print();
        Animal rabbit = factory.getAnimal("rabbit");
        rabbit.print();
    }
}