日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 三,工廠模式——抽象工廠模式

三,工廠模式——抽象工廠模式

來源:程序員人生   發布時間:2016-10-12 09:15:32 閱讀次數:2825次

1 抽象工廠模式

抽象工廠模式是所有形態的工廠模式中最為抽象和最具有1般性的1種形態。該模式面對的是多個產品等級結構的系統設計。工廠方法模式針對的是1個產品等級結構;而抽象工廠模式則需要面對多個產品等級結構。

1個產品等級結構圖

多個產品等級結構圖

1.2 產品族

產品族是指位于不同產品等級結構中,功能相干聯的產品組成的家族。

用相圖的情勢表現生產品族與產品等級結構的關系

在抽象工廠模式中,每個產品族都有1個具體工廠,而每個具體工廠負責創建屬于同1個產品族,但是分屬于不同等級結構的產品。

1.3 抽象工廠觸及到的角色

  • 抽象工廠角色
  • 具體工廠類角色
  • 抽象產品角色
  • 具體產品角色

2 甚么情況下使用抽象工廠模式

  • 1個系統中不應當依賴于產品類實例如何被創建,組合和表達的細節,這對所有形態的工廠模式都是重要的。
  • 這個系統的產品有多于1個的產品族,而系統只消費其中某1族的產品。
  • 同屬于同1個產品族的產品是在1起使用的。
  • 系統提供1個產品類的庫,所有的產品以一樣的接口出現,從而使客戶端不依賴于實現。

3 抽象工廠的實現

農場公司要引進塑料大棚的技術,在大棚里種植熱帶和亞熱帶的水果和蔬菜。在這里水果和蔬菜就是兩個等級結構,而熱帶的水果和熱帶的蔬菜是1個產品族,亞熱帶的水果和亞熱帶的蔬菜又是1個產品族。

用類圖表示為

部份代碼實現

package com.designpattern.abstractfactory;

/**
 * Created by Administrator on 2016/9/19.
 */
public interface Fruits {
    String getName();
    void setName(String name);
}
package com.designpattern.abstractfactory;

/**
 * Created by Administrator on 2016/9/19.
 */
public interface Vegetables {
    String getName();
    void setName(String name);
}
package com.designpattern.abstractfactory;

/**
 * Created by Administrator on 2016/9/19.
 */
public class SubtropicalFruit implements Fruits{
    private String name;

    SubtropicalFruit(String name){
        this.name = name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}
package com.designpattern.abstractfactory;

/**
 * Created by Administrator on 2016/9/19.
 */
public class SubtropicalVegetable implements Vegetables{
    private String name;

    SubtropicalVegetable(String name){
        this.name = name;
    }

    @Override
    public String getName() {
        return null;
    }

    @Override
    public void setName(String name) {
        this.name = name;
    }
}
package com.designpattern.abstractfactory;

/**
 * Created by Administrator on 2016/9/19.
 */
public class SubtropicalFactory implements IFatory{
    public static Fruits createFruit(String name){
        return new SubtropicalFruit(name);
    }

    public static Vegetables createVegetable(String name){
        return new SubtropicalVegetable(name);
    }
}
package com.designpattern.abstractfactory;

/**
 * Created by Administrator on 2016/9/19.
 */
public class Client {
    public static void main(String args[]){
        Fruits fruit = SubtropicalFactory.createFruit("香蕉");

        System.out.println(fruit.getName());
    }
}
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 成人免费看 | 久久久久成人免费视频 | 在线观看毛片网站 | 99精品国产一区二区青青牛奶 | 亚洲视频在线观看视频 | 欧美成人免费 | 亚洲综合区 | 亚洲一区二区三区四区免费观看 | 欧美精品乱码久久久久久按摩 | 国产一区二区高清 | 亚洲视频观看 | 激情久久av一区av二区av三区 | 欧美大吊视频 | 欧美一级一 | 欧美一级毛片免费看 | 黄色毛片免费视频 | 久久久久久国产精品 | 国产一区二区三区四区 | 精品三区| 91福利国产在线观看菠萝蜜 | 五月婷婷丁香 | 亚洲精品电影网在线观看 | 视频在线国产 | 狠狠淫 | 在线成人精品国产区免费 | 亚洲第十页 | 久久久久久久久久久网站 | 国产区在线看 | 99免费视频| 亚洲国产精品久久人人爱 | 精品久久黄色 | 午夜免费 | 超碰久热| 欧美高清在线观看 | 国产精品永久 | 欧美成人生活片 | 成人毛片在线精品国产 | 中文字幕在线观看日本 | 久久加久久| 夜夜福利 | 中文字幕超碰在线 |