工厂模式有哪几种?
- 简单工厂模式(Simple Factory)
- 工厂方法模式(Factory Method)
- 抽象工厂模式(Abstract Factory)
Java设计模式之创建型:工厂模式详解(简单工厂+工厂方法+抽象工厂)
这三种工厂模式的区别是什么?
- 简单工厂模式:一个工厂类生产多种产品。工厂类只有一个,产品有一个抽象类,多个实现子类。
例如:一个鞋厂可以生产不同颜色、尺码的运动鞋。 - 工厂方法模式:一个工厂类生产一种产品,多个工厂类生成多种产品。工厂接口有多个工厂子类,每个子类生成一个产品。合起来生产多个产品。
例如:日用品中,洗发产品加工厂只生产洗发产品,鞋厂只生产鞋子。 - 抽象工厂模式:多个工厂类生产一种产品。要生成多种产品,就需要更多工厂类。工厂接口有过个子类,零部件加工厂也有多个子类,工厂子类通过调用不同零部件加工厂子类,来生产一种产品。
例如:手机的芯片是美国高通生产的,显示屏是韩国三星生产的。
工厂模式的好处是什么?
工厂模式的目的将创建对象的具体过程屏蔽隔离起来。
外部创建对象时,不需要看到对象复杂的创建过程,或者不希望向外部暴露创建过程的情况下,可以使用工厂模式。
工厂模式实际应用有哪些?
- 简单工厂模式
常见的有BitmapFactory
,WebViewFactory
- 工厂方法模式
待补充,欢迎评论提示。 - 抽象工厂模式
AsyncTask中有用到ThreadFactory
,详见:Android中的设计模式-工厂方法模式