設計模式-工廠模式

參考網(wǎng)站

http://www.runoob.com/design-pattern/factory-pattern.html

什么是工廠模式?

工廠模式是Java中最常用的設計模式之一。這種模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方法。
在工廠模式中,我么你在創(chuàng)建對象時不會對客戶端暴露創(chuàng)建邏輯,并且是通過使用一個共同的接口來指向新創(chuàng)建的對象。

使用方法

定義一個創(chuàng)建對象的接口,讓其子類自己決定實例化哪一個工廠類,工廠模式使其創(chuàng)建過程延遲到子類進行。

步驟

創(chuàng)建一個接口

Toys.java 玩具類

public interface Toys {
    public void print();

}

創(chuàng)建實現(xiàn)接口的實現(xiàn)類

Car.java 玩具車

public class Car implements Toys{
    
    public void print(){
        System.out.println("Car");
    }
    
}

Sword.java 玩具劍

public class Sword implements Toys {
    public void print(){
        System.out.println("Sword");
    }
}

創(chuàng)建一個工廠,生成基于給定字符串的實體類的對象

ToysFactory.java 玩具工廠類

public class ToysFactory {

    public Toys getToy(String toysName){
        if(toysName == "car")
            return new Car();
        else if(toysName == "sword")
            return new Sword();
        return null;
    }
}

使用該工廠,給定字符串,生成對應的對象

Client.java 客戶端類

public class Client {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ToysFactory toysFactory = new ToysFactory();
        Toys toys = toysFactory.getToy("sword");
        toys.print();//輸出Sword
        toys = toysFactory.getToy("car");
        toys.print();//輸出Car
    }

}

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 一、工廠模式簡介 意圖定義一個創(chuàng)建對象的接口,讓其子類自己決定實例化哪一個工廠類,工廠模式使其創(chuàng)建過程延遲到子類進...
    怡紅快綠閱讀 666評論 0 0
  • 一、工廠模式主要是為創(chuàng)建對象提供過渡接口,以便將創(chuàng)建對象的具體過程屏蔽隔離起來,達到提高靈活性的目的。 工廠模式在...
    逆風飛行1226閱讀 651評論 0 0
  • 原文地址:LoveDev 工廠模式是最常用的設計模式之一,該模式定義一個用于創(chuàng)建對象的工廠類,調(diào)用者不用關心創(chuàng)建的...
    KevinLive閱讀 393評論 0 0
  • 時至今日,我才恍然意識到,我所有的綿長久遠的愛都是因為難以觸摸。比如多年以來一天比一天濃烈的偶像之愛,因為無法靠近...
    云_橫閱讀 604評論 0 0
  • 1 我有個朋友,邏輯思維能力非常強,跟她在一起常常有被碾壓的感覺。 有次她跟說我 “你看,思考一個問題,應該是向不...
    Sora夜白鹿閱讀 2,519評論 8 34

友情鏈接更多精彩內(nèi)容