码迷,mamicode.com
首页 > 其他好文 > 详细

工厂模式

时间:2019-04-11 19:20:43      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:有一个   实例   return   不同类   模式   静态工厂模式   turn   技术   ima   

实现了创建者和调用者的分离

简单工厂模式:

  • 只有一个工厂,返回不同类型的产品
/**
 * 简单工厂模式又称静态工厂模式,增加新产品必须修改代码或修改配置文件
 */
public class AnimalFactory{
  // 方法一,直接返回一个实际对象
  public static Cat createCat() {
     return new Cat();
  }
  public static Dog createDog() {
     return new Dog();
  }
  //方法二,利用多态返回一个实现了接口对象
  public static Animal createAnimal(String type) {
     if(type.equals("cat")) {
         Animal cat = new Cat();
         return cat;
     } else if(type.equals("dog")) {
         Animal dog = new Dog();
         return dog;
     }
     return null;
  }
 
  // 方法三,可以利用类名返回对象,使用properties配置文件

}

工厂方法模式:

  • 概述:定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。
  • 适用性:
    • 当一个类不知道它所必须创建的对象的类的时候
    • 当一个类希望由它的子类来指定它所创建的对象的时候
    • 当类将创建对象的职责委托给多个帮助子类的某一个,并且你希望将哪一个帮助子类是代理这一信息局部化的时候
    • 便于增加新产品,只需增加产品和产品工厂类并实现相应的接口

技术图片

抽象工厂模式:

技术图片

小结:

? 一般不会直接代码new工厂对象(单例工厂方法),可以在配置中指定,这样一来客户就只能够看到抽象的类,接触不到具体实现。

? 工厂模式的经典案例:BeanFactory、SessionFactory

工厂模式

标签:有一个   实例   return   不同类   模式   静态工厂模式   turn   技术   ima   

原文地址:https://www.cnblogs.com/mabaoqing/p/10691562.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!