建造者
来源:互联网 发布:北京国贸中心数据 编辑:程序博客网 时间:2024/04/27 21:12
import java.util.ArrayList;
class Home
{
public static class Room
{
public Room(Integer iRoomID, String szView)
{
ROOM_ID = iRoomID;
ROOM_VIEW = szView;
}
public final Integer ROOM_ID;
public final String ROOM_VIEW;
}
public static class Door
{
public Door(Integer iRoomTo, Integer iRoomFrom, String szView)
{
ROOMTO_ID = iRoomTo;
ROOMFROM_ID = iRoomFrom;
DOOR_VIEW = szView;
}
public final Integer ROOMFROM_ID;
public final Integer ROOMTO_ID;
public final String DOOR_VIEW;
}
public void Render()
{
for(int i=0; i<m_vpRoomID.size(); i++)
{
Room pRoom = null;
pRoom = m_vpRoomID.get(i);
System.out.println(pRoom.ROOM_VIEW+"("+pRoom.ROOM_ID+")");
pRoom = null;
}
for(int i=0; i<m_vpDoorID.size(); i++)
{
Door pDoor = null;
pDoor = m_vpDoorID.get(i);
System.out.println(pDoor.DOOR_VIEW+"("+pDoor.ROOMFROM_ID+"->"+pDoor.ROOMTO_ID+")");
pDoor = null;
}
}
@SuppressWarnings("finally")
public boolean Init()
{
boolean bRet = false;
try
{
Clear();
m_vpDoorID = new ArrayList<Door>();
m_vpRoomID = new ArrayList<Room>();
bRet = true;
}
catch( Exception e)
{
throw e;
}
finally
{
return bRet;
}
}
public void Clear()
{
if( null != m_vpRoomID)
{
m_vpRoomID.clear();
m_vpRoomID = null;
}
if( null != m_vpDoorID)
{
m_vpDoorID.clear();
m_vpDoorID = null;
}
}
public ArrayList<Room> m_vpRoomID = null;
public ArrayList<Door> m_vpDoorID = null;
}
abstract class HomeBuilder
{
@SuppressWarnings("finally")
public boolean Init_CreateHome()
{
if( null != m_pHome)
{
m_pHome.Clear();
m_pHome = null;
}
boolean bRet = false;
try
{
m_pHome = new Home();
bRet = m_pHome.Init();
}
catch( Exception e)
{
throw e;
}
finally
{
return bRet;
}
}
public Home UnInit_GetHome()
{
Home pRet = m_pHome;
m_pHome = null;
return pRet;
}
public abstract void BuildRoom(Integer iID);
public abstract void BuildDoor(Integer iRoomTo, Integer iRoomFrom);
protected HomeBuilder()
{
}
protected Home m_pHome = null;
}
class CartoonBuilder extends HomeBuilder
{
@Override
public void BuildDoor(Integer iRoomTo, Integer iRoomFrom)
{
// TODO Auto-generated method stub
Home.Door pDoor = new Home.Door(iRoomTo,iRoomFrom,"Cartoon");
m_pHome.m_vpDoorID.add(pDoor);
pDoor = null;
}
@Override
public void BuildRoom(Integer iID)
{
// TODO Auto-generated method stub
Home.Room pRoom = new Home.Room(iID,"Cartoon");
m_pHome.m_vpRoomID.add(pRoom);
pRoom = null;
}
}
class ScienceBuilder extends HomeBuilder
{
@Override
public void BuildDoor(Integer iRoomTo, Integer iRoomFrom)
{
// TODO Auto-generated method stub
Home.Door pDoor = new Home.Door(iRoomTo,iRoomFrom,"Science");
m_pHome.m_vpDoorID.add(pDoor);
pDoor = null;
}
@Override
public void BuildRoom(Integer iID)
{
// TODO Auto-generated method stub
Home.Room pRoom = new Home.Room(iID,"Science");
m_pHome.m_vpRoomID.add(pRoom);
pRoom = null;
}
}
class MyHome
{
public void CreateHome(HomeBuilder pHomeBuilder)
{
if( null != m_pMyHome)
{
m_pMyHome.Clear();
m_pMyHome = null;
}
if( pHomeBuilder.Init_CreateHome())
{
pHomeBuilder.BuildRoom(0);
pHomeBuilder.BuildRoom(1);
pHomeBuilder.BuildDoor(1, 0);
m_pMyHome = pHomeBuilder.UnInit_GetHome();
}
}
public void Render()
{
if( null != m_pMyHome)
{
m_pMyHome.Render();
}
}
private Home m_pMyHome = null;
}
//---------------------------------------------------
class BuilderClient
{
public static void Client()
{
MyHome pMyHome = new MyHome();
HomeBuilder pCartoonBuilder = new CartoonBuilder();
pMyHome.CreateHome(pCartoonBuilder);
pCartoonBuilder = null;
pMyHome.Render();
HomeBuilder pScienceBuilder = new ScienceBuilder();
pMyHome.CreateHome(pScienceBuilder);
pScienceBuilder = null;
pMyHome.Render();
pMyHome = null;
}
}
- 建造者
- 建造者
- 建造型——建造者模式
- Builder 建造者模式
- 建造者模式
- 设计模式-------建造者
- 建造者模式
- wince_btn 建造者
- 建造者模式(Builder)
- 建造者模式(Builder)
- 建造者模式
- 建造者模式 - builder
- 建造者模式
- Builder建造者模式
- 建造者模式(Builder)
- 建造者模式(builder)
- 建造者模式
- java建造者模式
- 抓取凡客一万多商品,链接,商品名称,价格,图片~~~版本1
- 转:页表的建立
- myeclipse下ssh的配置
- AVD(android virtual device )路径设置
- 思
- 建造者
- c# 金字塔式排列数字递归算法
- cvFlipde 用法
- 入职培训心得
- 如何复制百度文库
- 集群NAS技术架构
- CPLD/FPGA/Verilog_Verilog指令_assign用法
- 看似很合乎逻辑,明白一个你就是天才!!!!
- 配置linux网络