您的位置:首页 > 编程语言

工厂模式代码示例(一)

2015-06-01 14:15 363 查看
package com.example.gongchang_jiandan;

/***
* 薯条对抽象接口的实现
* @author Administrator
*
*/
public class Chips implements Food
{

@Override
public void get()
{
System.out.println( "我点了一份薯条" );
}
}


package com.example.gongchang_jiandan;

/**
* 食物的抽象接口
* @author Administrator
*
*/
public interface Food
{

//获得相应的食物
public void get();
}




package com.example.gongchang_jiandan;

public class FoodFactory
{

public static Food getFood(
String type ) throws InstantiationException , IllegalAccessException , ClassNotFoundException
{
if( type.equalsIgnoreCase( "mcchicken" ) )
{
return McChicken.class.newInstance();
}
else if( type.equalsIgnoreCase( "chips" ) )
{
return Chips.class.newInstance();
}
else
{
System.out.println( "哎呀!找不到相应的实例化类啦!" );
return null;
}
}
}


package com.example.gongchang_jiandan;

// 麦香鸡抽象接口的实现
public class McChicken implements Food
{

@Override
public void get()
{
System.out.println( "我点了一份麦乐鸡!!!" );
}
}


package com.example.gongchang_jiandan;

public class TestActivity
{

public static void main(
String[] args ) throws InstantiationException , IllegalAccessException , ClassNotFoundException
{
//实例化各种食物
Food mcChicken = FoodFactory.getFood( "McChicken" );
Food chips = FoodFactory.getFood( "Chips" );
Food eggs = FoodFactory.getFood( "Eggs" );
//获取食物
if( mcChicken != null )
{
mcChicken.get();
}
if( chips != null )
{
chips.get();
}
if( eggs != null )
{
eggs.get();
}
}
}


输出结果是:
哎呀!找不到相应的实例化类啦!

我点了一份麦乐鸡!!!

我点了一份薯条
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: