日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

java抽象工厂设计模式_23种经典设计模式的java实现_1_抽象工厂模式

發(fā)布時間:2024/1/23 asp.net 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java抽象工厂设计模式_23种经典设计模式的java实现_1_抽象工厂模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

抽象工廠模式的適用:

一個系統(tǒng)要獨(dú)立于它的產(chǎn)品的創(chuàng)建、組合和表示時。

一個系統(tǒng)要由多個產(chǎn)品系列中的一個來配置時。

當(dāng)你要強(qiáng)調(diào)一系列相關(guān)的產(chǎn)品對象的設(shè)計以便進(jìn)行聯(lián)合使用時。

當(dāng)你提供一個產(chǎn)品類庫,而只想顯示它們的接口而不是實(shí)現(xiàn)時。

示例說明:

有三種抽象的產(chǎn)品:墻、門、房間。

對這三種抽象產(chǎn)品有兩組具體實(shí)現(xiàn):臥室和起居室。

那么,我們的抽象工廠就可以根據(jù)客戶的指令(即調(diào)用參數(shù))去生產(chǎn)臥室和起居室的房間(墻和門包括在房間里)。

測試啟動類:

package com.alex.designpattern.abstractfactory;

/** *//**

* 抽象工廠模式

*

* 提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無需指定它們具體的類。

*

* @author huqi

* @serialData 2007

*/

public class Test ...{

public static void main(String[] args) throws Exception ...{

// ----- Create Living Room

Room myLivingRoom = AbstractRoomFactory.createRoom("LivingRoom");

AbstractRoomFactory.showRoom(myLivingRoom);

// ----- Create Bed Room

Room myBedRoom = AbstractRoomFactory.createRoom("BedRoom");

AbstractRoomFactory.showRoom(myBedRoom);

}

}

抽象產(chǎn)品:

package com.alex.designpattern.abstractfactory;

/** *//**

* The Abstract Class of Wall

*/

public interface Wall ...{

public String getName();

}

package com.alex.designpattern.abstractfactory;

/** *//**

* The Abstract Class of Door

*/

public interface Door ...{

public String getName();

}

package com.alex.designpattern.abstractfactory;

/** *//**

* The Abstract Class of Room

*/

public interface Room ...{

public Wall getWall();

public Door getDoor();

}

實(shí)際產(chǎn)品_1

package com.alex.designpattern.abstractfactory;

/** *//**

* A concrete Room - Bed Room

*/

public class BedRoom implements Room ...{

public BedRoom() ...{

System.out.println("Initiated a bedroom.");

}

public Door getDoor() ...{

return new BedRoomDoor();

}

public Wall getWall() ...{

return new BedRoomWall();

}

}

package com.alex.designpattern.abstractfactory;

/** *//**

* A concrete Door for Bed Room

*/

public class BedRoomDoor implements Door ...{

private String doorName;

public BedRoomDoor() ...{

doorName = "BedRoomDoor";

}

public String getName() ...{

return doorName;

}

}

package com.alex.designpattern.abstractfactory;

/** *//**

* A concrete Wall for Bed Room

*/

public class BedRoomWall implements Wall ...{

private String wallName;

public BedRoomWall() ...{

wallName = "BedRoomWall";

}

public String getName() ...{

return wallName;

}

}

實(shí)際產(chǎn)品_2

package com.alex.designpattern.abstractfactory;

/** *//**

* A concrete Room - Living Room

*/

public class LivingRoom implements Room ...{

public LivingRoom() ...{

System.out.println("Initiated a livingroom.");

}

public Door getDoor() ...{

return new LivingRoomDoor();

}

public Wall getWall() ...{

return new LivingRoomWall();

}

}

package com.alex.designpattern.abstractfactory;

/** *//**

* A concrete Door for Living Room

*/

public class LivingRoomDoor implements Door ...{

private String doorName;

public LivingRoomDoor() ...{

doorName = "LivingRoomDoor";

}

public String getName() ...{

return doorName;

}

}

package com.alex.designpattern.abstractfactory;

/** *//**

* A concrete Wall for Living Room

*/

public class LivingRoomWall implements Wall ...{

private String wallName;

public LivingRoomWall() ...{

wallName = "LivingRoomWall";

}

public String getName() ...{

return wallName;

}

}

最后,當(dāng)然就是抽象工廠咯,不過要注意,這個抽象工廠的意思并不是這個“工廠”是抽象的,而是這個“工廠”加工的“產(chǎn)品”是來自于抽象的。

package com.alex.designpattern.abstractfactory;

/** *//**

* A Room Maker to test our simple Room Abstract Factory.

*

* @author huqi

* @serialData 2007

*/

public abstract class AbstractRoomFactory ...{

public static Room createRoom(String roomType) throws Exception ...{

if (roomType.equals("LivingRoom")) ...{

return new LivingRoom();

} else if (roomType.equals("BedRoom")) ...{

return new BedRoom();

} else ...{

throw new Exception("No this type room: " + roomType);

}

}

public static void showRoom(Room room) ...{

Door door = room.getDoor();

System.out.println("Room door name is: " + door.getName());

Wall wall = room.getWall();

System.out.println("Room wall name is: " + wall.getName());

}

}

總結(jié)

以上是生活随笔為你收集整理的java抽象工厂设计模式_23种经典设计模式的java实现_1_抽象工厂模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩久久久久久 | 国产乱子伦精品无码专区 | 亚洲欧美一区二区在线观看 | 污免费在线观看 | 国产精品热久久 | 国产一区二区三区自拍 | 亚洲午夜福利一区二区三区 | 超碰国产97 | 亚洲精品中文字幕在线观看 | 亚洲无卡| 超碰日日干 | 亚欧成人| 操啊操 | 亚洲视频一 | www久久99 | 性五月天| 美女被揉胸视频 | 亚洲m码 欧洲s码sss222 | 欧美第一页在线观看 | 黄色在线视频网站 | 中文字幕在线观看一区二区 | 成人综合激情网 | 特一级黄色 | 九色视频自拍 | 午夜视频在线免费播放 | 欧美理论在线观看 | 永久免费无码av网站在线观看 | 国产第100页 | 国产精品电影在线观看 | 天天想你免费观看完整版高清电影 | 久草视频在线免费看 | 亚洲在线免费观看视频 | 加勒比综合 | 国产xxxx做受性欧美88 | 国产香蕉视频在线播放 | 午夜在线一区二区三区 | 天天操天天艹 | www.我爱av | 在线观看黄色动漫 | 人人插人人草 | 青草视频在线观看视频 | xxxxhd欧美 | 在线香蕉 | 91视频日本 | 69超碰 | 91蜜桃网站 | 亚洲区色 | 亚洲国产视频网站 | 黄色片a级 | 成人欧美一区二区三区在线观看 | 91福利视频导航 | 亚洲无吗一区二区三区 | 亚洲综合激情另类小说区 | 精品国产户外野外 | 亚洲天堂手机在线观看 | 一个人看的www视频在线观看 | 97在线观看视频 | jul023被夫上司连续侵犯 | 日本日皮视频 | 韩国三级bd高清中字2021 | 欧美人吸奶水吃奶水 | 成人午夜激情影院 | 欧美日韩一区二区区 | 欧美精品在线视频 | 99久久久国产精品无码免费 | 六月激情| 青青草原一区二区 | 综合激情网五月 | 国产美女无遮挡网站 | 中文字幕日韩在线视频 | 精品久久ai | 一边顶弄一边接吻 | 一本一道久久a久久精品蜜桃 | 韩国bj大尺度vip福利网站 | xxxx69视频 | 欧美自拍偷拍一区二区 | 亚洲成人毛片 | 国产白丝一区二区三区 | 亚洲一区二区三区在线看 | 青娱乐91视频 | 九九久久久 | 九九在线免费视频 | 国产精品一二三四五区 | 午夜三级福利 | 人妖天堂狠狠ts人妖天堂狠狠 | 欧美人与动牲交xxxxbbbb | 欧美脚交| 麻豆av电影网 | 天海翼一区二区 | 精品一区二区久久久久久按摩 | 欧美黄色特级片 | 日日摸日日添日日碰9学生露脸 | av午夜激情| 日本不卡视频在线观看 | 久av在线| 久久精彩免费视频 | 蜜桃视频在线网站 | 精品九九在线 | 中文有码在线 |