java语法简单实现工厂模式详解,java工厂模式例子

下面要给大家分享的就是java简单工厂模式例子,一起来了解一下java实现一个工厂模式应该如何操作吧。

简单工厂模式:

下面以农夫山泉工厂为例子,农夫山泉生产矿泉水以及茶π等饮料,这里的话矿泉水以及茶π都属于饮料,都有着解渴的功效,可是,每一种饮料给人的感受都是不一样的,矿泉水和茶π在java当中相当于子类,饮料相当于父类。

简单工厂模式又被叫做是静态工厂模式,在java当中,专门定义一个类来负责创建其他类的实例,被创建的实例一般都是拥有共同的父类的。

这里的话,把水果园当做一个工厂,能够生产苹果和香蕉等水果,每一个苹果或者是香蕉都是一个实例,他们的父类都是水果。

下面一起来看一下用java语言实现简单工厂模式实例:

简单工厂模式示意图

java工厂模式例子

创建Fruit接口、Apple类和Banana类

Fruit(interface):

//水果类
public interface Fruit
{
    public void get();
}

Apple类:

//苹果类
public class Apple implements Fruit
{
    //实现并重写父类的get()方法
    public void get()
    {
        System.out.println("采集苹果");
    }
}

Banana类:

//香蕉类
public class Banana implements Fruit
{
    //实现并重写父类的get()方法
    public void get()
    {
        System.out.println("采集香蕉");
    }
}

创建水果园,也就是工厂类,来生产各种水果

FruitFactory:

这里的话要稍微的注意一下了,将工厂类以及创建的子类放在同一个包中,便于调用。

package simpleFactory;
//水果园,水果工厂类
public class FruitFactory
{
    /**
     * @param 不同水果的类名称
     * @return 水果类
     */
    public static Fruit getFruit(String type) throws ClassNotFoundException, InstantiationException, IllegalAccessException
    {
        /*这里通过反射的方式获取到水果子类的字节码,即类对象,通过类对象的newInstance()方法创建水果子类
        实例*/
        Class fruit = Class.forName(FruitFactory.class.getPackage()
            .getName() + "." + type);
        return (Fruit) fruit.newInstance();
    }
}

开始生产水果

创建实例,另外建立一个类

MainClass:

package simpleFactory;
public class MainClass
{
    public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException
    {
        //通过调用工厂类的静态方法getFruit,创建水果的子类实例。
        Fruit apple = FruitFactory.getFruit("Apple");
        Fruit banana = FruitFactory.getFruit("Banana");
        apple.get();
        banana.get();
    }
}

结果

java工厂模式例子

最后来做一下总结:

模式是来源于生活的,简单工厂模式也是很容易理解的模式,这样的模式在很多的框架当中都有被应用到,比较典型的就是Spring框架当中创建实例的时候,以及Mybatis中的SqlSessionFactory等等,这里的话通过生活实例,实现了简单工厂模式。

以上内容源于网络,仅供参考,希望可以对你有所帮助。

想了解更多的java经典实例,请继续通过本站来进行了解吧。

推荐阅读:

如何实现高内聚低耦合?高内聚低耦合的现实例子

java写一个servlet实现登录功能,servlet简单登录实例代码

字符串空格替换成指定元素实例思路讲解java