定义:定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到了子类中进行,它属于创建类型
通俗理解与做法:
定义一个抽象类或者接口来当规范工厂,它是一个只声明方法叫什么名字不实现方法的内容的一个规范类;
定义具体工厂实现或者继承规范工厂,然后重写规范工厂中定义的方法,在该方法中生产属于自己工厂的对象
使用的时候,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();
}
}
对于工厂方法模式来说就是子类重写的方法生产对象不同从而达到获取不同的对象
如果有什么错误之处请指出,谢谢阅读!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。