工厂
来源:互联网 发布:歌曲录制软件 编辑:程序博客网 时间:2024/05/17 09:41
import java.util.Random;
abstract class UiData
{
public void DoLogic()
{
Random pRandom = new Random();
m_iData = pRandom.nextInt(100);
pRandom = null;
}
public abstract void DoView();
protected int m_iData;
}
class UiView_480_272 extends UiData
{
@Override
public void DoView()
{
System.out.println("View 480 * 272: "+m_iData);
}
}
class UiView_320_240 extends UiData
{
@Override
public void DoView()
{
System.out.println("View 320 * 240: "+m_iData);
}
}
class UiView_NUM extends UiData
{
@Override
public void DoView()
{
System.out.println("Dos: "+m_iData);
}
}
abstract class UiFactory
{
public abstract <T extends UiData> T GetUi(Class<T> c);
}
class CE600_UiFactory extends UiFactory
{
@SuppressWarnings({ "finally", "unchecked" })
@Override
public <T extends UiData> T GetUi(Class<T> c)
{
// TODO Auto-generated method stub
UiData pUiData = null;
try
{
pUiData = (UiData)Class.forName(c.getName()).newInstance();
}
catch( Exception e)
{
throw e;
}
finally
{
return (T)pUiData;
}
}
}
class DOS_UiFactory extends UiFactory
{
@SuppressWarnings({ "finally", "unchecked" })
@Override
public <T extends UiData> T GetUi(Class<T> c)
{
// TODO Auto-generated method stub
UiData pUiData = null;
try
{
pUiData = new UiView_NUM();
}
catch( Exception e)
{
throw e;
}
finally
{
return (T)pUiData;
}
}
}
//---------------------------------------------------
class FactoryClient
{
public static void Client()
{
UiFactory pUiFactoryView = new CE600_UiFactory();
UiData pUiData1 = pUiFactoryView.GetUi(UiView_480_272.class);
pUiData1.DoLogic();
pUiData1.DoView();
pUiData1 = null;
UiData pUiData2 = pUiFactoryView.GetUi(UiView_320_240.class);
pUiData2.DoLogic();
pUiData2.DoView();
pUiData2 = null;
pUiFactoryView = null;
UiFactory pUiFactoryDos = new DOS_UiFactory();
UiData pUiDataDos = pUiFactoryDos.GetUi(UiView_320_240.class);
pUiDataDos.DoLogic();
pUiDataDos.DoView();
pUiDataDos = null;
pUiFactoryView = null;
}
}
- 工厂
- 工厂
- 工厂
- 工厂
- 工厂
- 工厂
- 工厂
- 简单工厂,工厂,抽象工厂
- 简单工厂、工厂、抽象工厂
- 简单工厂、工厂、抽象工厂
- 工厂与工厂方法
- 工厂模式 -- 工厂方法
- 工厂模式 -- 抽象工厂
- 工厂模式-简单工厂
- 工厂模式-工厂方法
- 简单工厂 静态工厂
- 工厂模式:静态工厂
- 工厂模式-简单工厂
- C++ 十一周上机作业-之-编程2(虚基类的简单使用) 东南大学 仪器科学与工程学院
- 2011"国信蓝点杯"软件大赛模拟题java本科组(答案)
- [018] Android开发之WebService介绍
- 适配器模式
- Post.threadAdd
- 工厂
- GridView 分页导出Excel
- perl 获得目录列表(globbing,句柄)
- mysql 在linux上的安装 (Red hat 5.5 By RPM)
- xp下硬盘启动各种BT(BT3,BT4,BT5)
- google ProtoBuf开发者指南
- Asp.net(C#)给图片加上水印效果
- ProtocolBuffer的.NET版本
- 理解session机制