工厂模式代码示例(一)
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(); } } }
输出结果是:
哎呀!找不到相应的实例化类啦!
我点了一份麦乐鸡!!!
我点了一份薯条
相关文章推荐
- C++ 与 php 的交互 之----- C++ 获取 网页文字内容,获取 php 的 echo 值。
- 关于C语言中自增自减
- 推荐eclipse插件Properties Editor(转)
- 利用Spring进行统一异常处理的两种方式
- java复习(七)
- MyEclipse使用总结——MyEclipse10安装SVN插件
- eclipse中testNg离线安装
- JAVA中复制数组的方法
- 深入理解python之self
- python模块相关
- Cpp Primer<<学习函数-重载函数_2
- 学习SpringMVC系列教程(一)Spring MVC入门
- 探寻Google Photos无限免费的“真相”
- [STL][C++]LIST
- 获取Spring-boot系统环境变量方法
- python--FTP两个文件夹间的同步
- 第一个struts2程序
- Eclipse中安装使用SVN
- spring集成PHPRPC及使用
- AMD Launches The A10-7870K "Godavari" APU