溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

抽象類的工廠模式

發(fā)布時間:2020-08-08 08:58:29 來源:ITPUB博客 閱讀:153 作者:gxbgxb 欄目:編程語言

本文模擬賽車游戲,抽象場景工廠FacilitiesFactory ,引用到抽象道路,抽象建筑物等類,實例中 場景繼承抽象場景,道路繼承抽象道路,實現(xiàn)多類交叉的方法。

package test;

public class AbstractFactory {


//抽象 道路
public abstract class Road
{
int road=12;
//沙路
public void aa(){road=1;}
//水泥路
public void ab(){road=2;}
//山路
public void ac(){road=3;}
}

//抽象 建筑物
public abstract class Building
{
String gg="建筑物";
public void bb() {}
}
//抽象 地道
public abstract class Tunnel{
String gg="地道";
}
//抽象 叢林
public abstract class Jungle
{
String gg="建筑物";
}

//抽象一個設(shè)施工廠,包含所有賽車游戲的所有設(shè)施
public abstract class FacilitiesFactory
{
public abstract Road CreateRoad();
public abstract Building CreateBuilding();
public abstract Tunnel CreateTunnel();
public abstract Jungle CreateJungle();
}
//道路
public class ModernRoad extends Road
{
}
//建筑物
public class ModernBuilding extends Building
{
}
//地道
public class ModernTunnel extends Tunnel
{
String gg="地道";
}
//叢林
public class ModernJungle extends Jungle
{
String gg="叢林";
}

//新建一個設(shè)施工廠,包含所有賽車游戲的所有設(shè)施
public class ModernFacilitiesFactory extends FacilitiesFactory
{

public Road CreateRoad() {
return new ModernRoad();
}
public Building CreateBuilding(){
return new ModernBuilding();
}
public Tunnel CreateTunnel(){
return new ModernTunnel();
}
public Jungle CreateJungle(){
return new ModernJungle();
}

}


//客戶程序
public class GameManger{
Road road;
Building buliding;

FacilitiesFactory fac;
public GameManger(FacilitiesFactory fac){
this.fac=fac;
}

//實際創(chuàng)建 賽道,建筑物,叢林等等
public void BuildGameFacilities(){
road = fac.CreateRoad();
System.out.println(road.road);
buliding=fac.CreateBuilding();
System.out.println(buliding.gg);
}

public void run(){
BuildGameFacilities();
System.out.println(road.road);
//road.aa();
buliding.bb();
}
}
public void play(){
GameManger ga = new GameManger(new ModernFacilitiesFactory());
ga.run();
}
public static void main(String[] msg){
AbstractFactory ab =new AbstractFactory();
ab.play();
}
}

[@more@]
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI