简单工厂模式
2016-01-25 16:26
357 查看
简单工厂模式
我们所熟知的工厂模式一般可分为简单工厂模式(也有人成为静态工厂模式),工厂方法模式,抽象工厂模式。本篇博客就介绍下简单工厂模式:
public interface Fruit { /* * 种植 */ public void plant(); }
这是一个叫水果的接口,代表抽象概念“水果”。
public class Apple implements Fruit { @Override public void plant() { // TODO Auto-generated method stub System.out.println("种苹果"); } }
这个水果的一个具体实现,“苹果”。
public class Banana implements Fruit { @Override public void plant() { // TODO Auto-generated method stub System.out.println("种香蕉"); } }
这是另一个水果的抽象实现,“香蕉”。
public class FruitFactory { public static Fruit getFruit(String className) throws ClassNotFoundException, InstantiationException, IllegalAccessException{ Class<?> fruit = Class.forName(className); return (Fruit)fruit.newInstance(); } }
这个是个工厂类,顾名思义,他是用来生产水果的工厂,传入具体的水果名称,直接用反射生成实例。
public class MainClass { public static void main(String[] args) { // TODO Auto-generated method stub try { Apple apple = (Apple)FruitFactory.getFruit("main.Apple"); apple.plant(); System.out.println("------------------------------"); Banana banana = (Banana)FruitFactory.getFruit("main.Banana"); banana.plant(); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
这是主程序。
一个工厂对应一个抽象接口,对应n个具体实现,这就是简单工厂模式。简单工厂模式的主要特征就是只有一个工厂。
相关文章推荐
- 激发程序员创意的6本书
- 使用WinINet发送HTTP请求并获取数据[原]
- 【转】位运算应用口诀和实例
- 【转】D3DXMatrixPerspectiveFovLH函数详解
- 【转】D3DXMatrixPerspectiveFovLH参数fovy
- 【转】D3DXLoadSkinMeshFromXof函数及.x在不同dx版本中
- syaWedoceD.91
- 【WC】成都七中集训
- HDOJ 2047 阿牛的EOF牛肉串
- CodeForces 612B HDD is Outdated Technology
- 小科普:到底什么是BFC、IFC、GFC和FFC,次奥?
- 87.Summary Ranges
- 禁用select下拉方法
- 激发程序员创意的6本书
- 使用WinINet发送HTTP请求并获取数据[原]
- 【转】位运算应用口诀和实例
- 【转】D3DXMatrixPerspectiveFovLH函数详解
- 【转】D3DXMatrixPerspectiveFovLH参数fovy
- 【转】D3DXLoadSkinMeshFromXof函数及.x在不同dx版本中
- 【转】C/C++字节对齐算法