设计模式---工场方法模式
2016-06-10 13:48
423 查看
工场模式由抽象工场模式衍生而来,工场模式同样是由工场来创建类的实例,不同之处在于这里需要新建工场的实例,但是这种情况会存在一个缺点就是每个品种都会创建一个新的工场,容易造成工场泛滥,好处是可以很方便的扩展产品
首先创建food和它的继承类
首先创建food和它的继承类
package com.zcj.factorypattern; public abstract class Food { public abstract void print(); }
package com.zcj.factorypattern; public class Rice extends Food { @Override public void print() { // TODO Auto-generated method stub System.out.println("i am rice"); } }
package com.zcj.factorypattern; public class Apple extends Food{ @Override public void print() { // TODO Auto-generated method stub System.out.println("i am apple"); } }然后创建食物工场,和对应的食物工场实现类
package com.zcj.factorypattern; public abstract class FoodFactory { public abstract Food createFood(); }
package com.zcj.factorypattern; public abstract class FoodFactory { public abstract Food createFood(); }
package com.zcj.factorypattern; public class AppleFactory extends FoodFactory { @Override public Food createFood() { // TODO Auto-generated method stub return new Apple(); } }最后是我们的测试类,注意上面工场来创建食物的时候没有使用反射
package com.zcj.factorypattern; public class FactoryTest { public static void main(String[] args) { FoodFactory factory = new RiceFactory(); //FoodFactory factory = new AppleFactory(); Food food = factory.createFood(); food.print(); } }
相关文章推荐
- 编解码学习笔记(三):Mpeg系列——Mpeg 1和Mpeg 2
- android studio中使用jack编译器
- SVN:The working copy is locked due to a previous error (二)
- phpcms:二、头部尾部包含
- myeclipse10.7.1无法打war包 提示:securecrt alert:integrity check error
- 解决ubuntu中vi不能正常使用方向键与退格键的问题
- phpcms:一、安装及新建模板
- 农村土地确权之调查公示 —— 公示拍照要求
- 110. Balanced Binary Tree
- 【linux】rpm常见命令
- Remove Linked List Elements
- Java知识点梳理系列(序)
- Gdal 2.1.0 示例工具的二次开发
- 农村土地确权之调查公示 —— 土地确权二轮公示及后续工作注意事项
- Android四大组件之Service
- SpringMVC之http的状态码(五)
- NPTL vs PThread
- javaBean规范有哪些内容?
- [企业管理]员工生育保障问题的讨论
- python+selenium环境搭建