定义:定义一个建立对象的接口,但让实现这个接口的类来决定实例化哪一个类,工厂方法让类的实例化推迟到了子类中进行,它属于建立类型ide
通俗理解与作法: 定义一个抽象类或者接口来当规范工厂,它是一个只声明方法叫什么名字不实现方法的内容的一个规范类; 定义具体工厂实现或者继承规范工厂,而后重写规范工厂中定义的方法,在该方法中生产属于本身工厂的对象 使用的时候,new工厂的时候是具体工厂给规范工厂进行赋值即=号左边是规范工厂类型,右边是具体工厂类型,想获哪一个具体工厂生产的对象就使用哪一个具体工厂类型,最后利用对象调用方法来获取具体工厂生产的 注意点: 要有一个规范工厂,该工厂只负责声明方法叫什么名字,不实现方法的内容 每个具体工厂都要继承或者实现规范工厂,重写它的方法,在方法中生产本身工厂的对象 使用的时候必定要具体工厂给规范工厂进行赋值
//StandardFactory----规范工厂 SpecificFactory----具体工厂 interface StandardFactory { public Product createProduct(); //声明了方法叫这个名字 } class SpecificFactory implements StandardFactory { @Override public Product createProduct() { //具体工厂实现规范工厂并重写它的方法生产属于工厂的对象 return new Product(); //这是属于该具体工厂生产的对象 } } public class Client { public static void main(String[] args) { StandardFactory factory = new SpecificFactory(); Product prodect = factory.createProduct(); } }
对于工厂方法模式来讲就是子类重写的方法生产对象不一样从而达到获取不一样的对象
若是有什么错误之处请指出,谢谢阅读!