简单工厂模式
来源:互联网 发布:福昕pdf阅读器for mac 编辑:程序博客网 时间:2024/06/05 03:01
简单工厂模式
我们所熟知的工厂模式一般可分为简单工厂模式(也有人成为静态工厂模式),工厂方法模式,抽象工厂模式。
本篇博客就介绍下简单工厂模式:
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个具体实现,这就是简单工厂模式。简单工厂模式的主要特征就是只有一个工厂。
1 0
- 工厂模式-简单工厂
- 工厂模式-简单工厂
- 工厂模式-简单工厂模式
- 工厂模式-简单工厂模式
- 简单工厂模式,工厂模式
- 工厂模式-简单工厂模式
- 简单工厂模式,工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 简单工厂和工厂模式
- 简单工厂和工厂模式
- 1,工厂模式--简单工厂
- 简单工厂和工厂模式
- 简单工厂,工厂模式,抽象工厂
- 简单工厂,工厂模式,抽象工厂
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂模式和抽象工厂
- 图像处理(四)图像分割(2)测地距离Geodesic图割
- MANIFEST.MF的用途(转载)
- 编码中的硬回车与软回车
- 09年最受关注的十大Visual Studio插件
- 激发程序员创意的6本书
- 简单工厂模式
- 使用WinINet发送HTTP请求并获取数据[原]
- DeepLearningToolBox学习——NN(neural network)
- 【转】位运算应用口诀和实例
- 【转】D3DXMatrixPerspectiveFovLH函数详解
- 【转】D3DXMatrixPerspectiveFovLH参数fovy
- 小科普:到底什么是BFC、IFC、GFC和FFC,次奥?
- 【转】D3DXLoadSkinMeshFromXof函数及.x在不同dx版本中
- Bitmap.recycle引发的血案