设计模式---简单工场模式
2016-06-10 13:35
411 查看
使用静态工场模式,就是通过给工场提出对应的要求,通过调用工场的对应的静态方法来创建我们所需要的对象,工场的内部实现可以调用构造方法也可以通过反射来实现
如下:首先定义抽象类Food,它有二个实现类Rice和Apple,
如下:首先定义抽象类Food,它有二个实现类Rice和Apple,
package com.zcj. factorypattern; public abstract class Food { public abstract void print(); }
package com.zcj.staticpattern; public class Rice extends Food { @Override public void print() { // TODO Auto-generated method stub System.out.println("i am rice"); } }
package com.zcj.staticpattern<span style="font-family: Arial, Helvetica, sans-serif;">;</span> public class Apple extends Food{ @Override public void print() { // TODO Auto-generated method stub System.out.println("i am apple"); } }下面是工场的定义:
package com.zcj.staticfactorypattern; public class FoodFactory { public static Food createFood(String type) throws InstantiationException, IllegalAccessException, ClassNotFoundException{ if(type=="rice"){ return (Food) Class.forName("com.zcj.abstracfactorypattern.Rice").newInstance(); } else{ return (Food) Class.forName("com.zcj.abstracfactorypattern.Apple").newInstance(); } } }最下面是我们的测试程序:
package com.zcj.staticfactorypattern; public class StaticFactoryTest { public static void main(String[] args) throws InstantiationException, IllegalAccessException, ClassNotFoundException { Food food =FoodFactory.createFood("apple"); food.print(); } }
相关文章推荐
- 打开gps定位-->发回短信&拦截指令&锁屏&销毁数据&ComponentName
- 利用wrapper打包java编写的服务注册window服务
- 网络 协议
- 【GOF23设计模式】_装饰模式_IO流底层架构_装饰和桥接模式的区别JAVA240
- Android如何隐藏底部虚拟按键
- 农村土地确权之调查公示 —— ArcGIS中地块分布图标注设置说明[地块分布图制作]
- 【leetcode】96. Unique Binary Search Trees
- CSS3实现炫酷进度条
- PowerDesigner连接数据库附PowerDesigner15.1汉化破解版
- ACM:蓝桥杯:开灯问题
- 求1!+2!+3!+......+n!
- 农村土地确权之调查公示 —— 地块分布图制作说明
- STM32F0xx_PWR低功耗配置详细过程
- 修改js confirm alert 提示框文字的简单实例
- meter度量值,也可用作进度条
- 创建自定义的RouteBase实现(Creating a Custom RouteBase Implementation) |定制路由系统 |
- Broadcast广播机制
- JqueryEasyUi追加自定义工具标签
- 111. Minimum Depth of Binary Tree
- MySQL-5.6.24的配置安装