中文字幕视频在线看,亚洲精品无码久久久久av老牛,亚洲精品无码av片,亚洲av影院一区二区三区,亚洲国产精品成人久久久

java工廠模式應(yīng)用場景有哪些(java可以用來寫工業(yè)軟件嗎)

工廠模式是軟件設(shè)計中最常用也最常見的一種模式,這里通過一個例子來說明其功能。

問題背景

用戶需求:請?zhí)峁?1)、圖形繪制功能,當前可繪制當前可繪制原型、方形、三角形。未來可能需要支持繪制菱形、梯形等形狀。2)、圖形可以提供一些其他的方法,比如繪制、染色、描邊等

系統(tǒng)設(shè)計

依據(jù)上面的需求,我們很自然的會想到以下設(shè)計點:

  • 定義接口類,該類定義了對用戶提供的方法,比如繪制、染色、描邊等。
  • 接口實現(xiàn)類,依據(jù)不同的圖形來實現(xiàn)接口。

上面兩點設(shè)計,完全可以實現(xiàn)用戶需求。 但它有一個劣勢:用戶需要記住每個圖形的實現(xiàn)類。隨著增加新圖形,或者更改當前使用的圖形時,用戶都需要不斷實例化新的類。

此時,我們可以通過工廠模式來降低用戶使用接口的復(fù)雜度。 即,我們提供一個工廠類,用戶只需要輸入圖形類型即可獲取到該圖形的實例。用戶不再需要記憶每個圖形對應(yīng)的類名。

所以,工廠模式是為了降低用戶使用接口復(fù)雜度而出現(xiàn)的一個鐘設(shè)計模式。

編碼實現(xiàn)

  • 首先,定義個接口類
// 暴露給用戶的接口類
public interface IShape {
    void draw(); // 提供給用戶的方法
}
  • 其次,實現(xiàn)一個工廠,該工廠提供圖形實例給用戶
// 暴露給用戶的工廠類,用戶提供圖形類型,即可通過該類獲取圖形實例。
public class ShapeFactory {
  // 返回值為接口定義
    public IShape create(String id)
    {
        if (id == null)
        {// 類型異常檢測
            throw new IllegalArgumentException("id is null");
        }
        if ("Circle".equals(id))
        {
            return new Circle();
        }
        if ("Rectangle".equals(id))
        {
            return new Rectangle();
        }
        if ("Triangle".equals(id))
        {
            return new Triangle();
        }// 類型異常檢測
        throw new IllegalArgumentException("Unknow id = "+id);
    }
}
  • 最后,實現(xiàn)工廠實體內(nèi)容,即實現(xiàn)圖形類。這里用圓形類舉例,其它類不一一例句。
// 圖形類,圓型類。用戶通過工廠類可以獲取該類的實例
public class Circle implements IShape {
    @Override
    public void draw() {
        System.out.println("draw a Circle");
    }
}

如上,清晰明了的說明了工廠模式的作用,及實現(xiàn)方法。

如果對例子感興趣,可以私信我。

java工廠模式應(yīng)用場景有哪些(java可以用來寫工業(yè)軟件嗎)

總結(jié):java可以用來寫工業(yè)軟件的。

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至2705686032@qq.com 舉報,一經(jīng)查實,本站將立刻刪除。原文轉(zhuǎn)載: 原文出處:

(0)
尊云-小張的頭像尊云-小張
上一篇 2024 年 5 月 9 日 09:10
下一篇 2024 年 5 月 9 日 09:14

相關(guān)推薦

發(fā)表回復(fù)

登錄后才能評論

聯(lián)系我們

400-900-3935

在線咨詢: QQ交談

郵件:cong@zun.com

工作時間:365天無休服務(wù) 24小時在線

添加微信