标签:抽象 factor 实例 ati override move col nbsp turn
一句话总结:用一个方法来代替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(); } }
标签:抽象 factor 实例 ati override move col nbsp turn
原文地址:https://www.cnblogs.com/wanjun-top/p/12689862.html