工厂模式之-简单工厂模式

本文介绍简单工厂模式的应用,通过创建动物接口及其实现类(如老虎、海豚、鹦鹉),并通过一个工厂类来实例化这些类。展示了如何利用简单工厂模式批量生产对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单工厂模式:

 

     .目的 
        工厂模式就是专门负责将大量有共同接口的类实例化,而且不必事先知道每次是要实例化哪一个类的模式。它定义一个用于创建对象的接口,由子类决定实例化哪一个类。

我现在要做一个动物园管理系统。

          首先抽象一个animal接口:

package factory.simpleFactory;

/**
 *
 * @author Administrator
 */
public interface Animal {
    void eat();

}
     

 

    然后创建实现了animal接口的具体实现类:

 

    1 Tiger 类  

package factory.simpleFactory;

/**
 *
 * @author Administrator
 */
public class Tiger implements Animal{

    public void eat() {
        System.out.println("老虎会吃");
    }

    public void run(){
        System.out.println("老虎会跑");
    }

}

 

 

2   haitui类:

 

package factory.simpleFactory;

/**
 *
 * @author Administrator
 */
public class Haitun implements Animal{

    public void eat() {
      System.out.println("海豚会吃");
    }
    public void swming(){
        System.out.println("海豚会游泳");
    }


}

 

 

3   yingwu类

package factory.simpleFactory;

/**
 *
 * @author Administrator
 */
public class Yingwu implements Animal {

    public void eat() {
        System.out.println("鹦鹉会吃");
    }

    public void flay() {
        System.out.println("鹦鹉会飞");
    }
}

 

 

然后我要创建一个animal的工厂类。该工厂类根据传入的参数生成具体的animal子类实例。其中用到反射机制。

 

 

public class AnimalFactory {

    public   Animal newAnimal(String name) {

        Animal animal = null;
        try {
            animal = (Animal) (Class.forName(name).newInstance());


        } catch (Exception ex) {
            Logger.getLogger(AnimalFactory.class.getName()).log(Level.SEVERE, null, ex);
        }
        return animal;

    }
}

 

 

 

好了,现在我们就可以来使用他们了。测试代码传上::

 

 

public class TestAnimal {

    public static void main(String[] args) {

        AnimalFactory af = new AnimalFactory();
        Animal tiger = af.newAnimal("factory.simpleFactory.Tiger");
        tiger.eat();
        Animal haitun = af.newAnimal("factory.simpleFactory.Haitun");
        haitun.eat();

        Animal yingwu = af.newAnimal("factory.simpleFactory.Yingwu");
        yingwu.eat();


    }
}

 

 

输出:

 

老虎会吃
海豚会吃
鹦鹉会吃

 

这就是简单工厂模式。用来大批量生产animal。

 

注意:如果要生产的实例又分好多种情况。如 tiger老虎又分为华南虎,华北虎等。怎么办。这时简单工厂模式就不能满足要求了。

 

要想解决这个问题。请看  【工厂方法模式】

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值