Factory(简单的工厂模式)

一句话总结:用一个方法来代替new关键字
解决什么问题:对象产生过多,或者经常有子类替换生成。
项目里面怎么用:对于经常生成的对象,或者父子类替换的对象。
模式结构:写一个对外声明的方法,方法里面使用new关键字代替。
框架里面使用:spring的核心就是工厂模式。

工厂方法模式:
有四个角色,抽象工厂模式,具体工厂模式,抽象产品模式,具体产品模式。不再是由一个工厂类去实例化具体的产品,而是由抽象工厂的子类去实例化产品

// 抽象产品角色
public interface Moveable {
    void run();
}
// 具体产品角色
public class Plane implements Moveable {
    @Override
    public void run() {
        System.out.println("plane....");
    }
}
//扫把
public
class Broom implements Moveable { @Override public void run() { System.out.println("broom....."); } }
// 抽象工厂 交通工具
public abstract class VehicleFactory {
    abstract Moveable create();
}
// 具体工厂
public class PlaneFactory extends VehicleFactory {
    public Moveable create() {
        return new Plane();
    }
}
public class BroomFactory extends VehicleFactory {
    public Moveable create() {
        return new Broom();
    }
}
// 测试类
public class Test {
    public static void main(String[] args) {
        VehicleFactory factory = new BroomFactory();
        Moveable m = factory.create();
        m.run();
    }
}

 

posted @ 2020-04-13 11:30  小污龟  阅读(969)  评论(0编辑  收藏  举报