工厂模式—接口
2015-07-14 17:09
232 查看
接口:
实现类:
工厂类:
测试类:
结果:
Fruit's Name:我是苹果
package test.designpattern.testinterface; public interface IFruit { String getFruitName(); }
实现类:
package test.designpattern.testinterface.impl; import test.designpattern.testinterface.IFruit; public class Apple implements IFruit { @Override public String getFruitName() { // TODO Auto-generated method stub return "我是苹果"; } }
package test.designpattern.testinterface.impl; import test.designpattern.testinterface.IFruit; public class Pear implements IFruit { @Override public String getFruitName() { // TODO Auto-generated method stub return "我是梨"; } }
工厂类:
package test.designpattern.testinterface; import test.designpattern.testinterface.impl.Apple; import test.designpattern.testinterface.impl.Banana; import test.designpattern.testinterface.impl.Pear; public class FruitFactory { public static IFruit getInstence(String str) throws Exception{ IFruit ifr = null; try { if(str.equals( "apple")){ ifr = new Apple(); }else if(str.equals( "pear")){ ifr = new Pear(); }else if(str.equals( "banana")){ ifr = new Banana(); } } catch (Exception e) { e.printStackTrace(); } return ifr; } }
测试类:
package test.designpattern.testinterface; import test.designpattern.testinterface.impl.Apple; public class TestInterfaceMain { public static void main(String args[]){ String child = "apple"; String fruitName = ""; try { fruitName = FruitFactory.getInstence(child).getFruitName(); System.out.println("Fruit's Name:"+fruitName); } catch (Exception e) { e.printStackTrace(); } } }
结果:
Fruit's Name:我是苹果
相关文章推荐
- git命令行的使用
- dbPool sybase connection pool
- Hibernate的Session使用
- 转:HTML5离线篇收藏--- cache manifest
- dbPool sybase connection pool
- UI3_UITableViewDelete(多选)
- C# 多线程task
- c++ try throw简单例子
- Spring2.5+Struts1.+Hibernate3.3完美整合
- 解决nginx无法显示图片的问题
- install ipython & notebook
- s3c2416 sdram初始化各寄存器设置
- 一个成功的Git分支模型
- 解决spring mvc 乱码问题
- 2012年5月SAT香港真题解析
- oracle用户连接不上,总被锁
- 举例说明使用MATLAB Coder从MATLAB生成C/C++代码步骤
- 与事件处理相关的function:addEventListener、removeEventListener与attachEvent、detachEvent
- 同步和异步的区分
- 改进 ThinkJS 的异步编程方式