简单工厂

简单工厂的优点在于可以根据不同需要很方便的产生不同的对象。

使用简单工厂有以下几个要点需要注意:

  1. 一个抽象的工厂类,该工厂类有一个抽象的方法,该方法用于生产需要的对象。抽象工厂类也可以用接口替代,如果是一个具体的概念,例如车,就用抽象类。如果是抽象的概念,例如可以飞的,会游泳的。
  2. 继承了抽象工厂类的具体抽象类,该类用于产生需要的对象。
  3. 一个接口,所有需要被生产的类都实现该接口。
  4. 需要被生产的类。

下面是以一个生产交通工具的例子阐述:


一个抽象的工厂类:

package pattern;

public abstract class VehicleFactory {
    abstract Movable create();
}

两个实现抽象工厂类的具体工厂类,一个用于生产飞机,一个用于生产小汽车

飞机工厂:

package pattern;

public class PlanFactory extends VehicleFactory {
    public Movable create(){
        return new Plane();
    }
}

小汽车工厂类:

package pattern;

public class CarFactory extends VehicleFactory {

    public Movable create(){
        return new Car();
    }
}

需要被生产的对象的类的接口:

package pattern;

public interface Movable {
    void run();
}

继承了Movable的小汽车类:

package pattern;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Administrator on 2018/7/14.
 */
public class Car implements Movable {
    public void run(){
        System.out.println("小汽车呜呜呜。。。");
    }
}

继承了Movable的飞机类:

package pattern;

public class Plane implements Movable {
    @Override
    public void run() {
        System.out.println("飞机啊飞。。。。。");
    }
}

主类:

package pattern;


/**
 * Created by Administrator on 2018/7/14.
 */
public class Main {
    public static void main(String argc[]){
//        VehicleFactory vehicleFactory=new PlanFactory();
        VehicleFactory vehicleFactory=new CarFactory();
        Movable movable=vehicleFactory.create();
        movable.run();
    }
}
从main函数中可以看到,如果想生产不同的对象很简单,只需要new不同的具体工厂类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值