工厂模式是Java最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式
在工厂模式中,我们创建对象时不会对客户端暴露创建逻辑,工厂模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂模式使一个类的实例化延迟到其子类
一、简单工厂模式
实例化对象的时候不再使用new Object()形式,可以根据用户的选择条件来实例化相关类。对于客户端来说,去除了具体的类的依赖,只需要给出具体实例的描述给工厂,工厂就会自动返回具体的实例对象
二、工厂模式
对于简单工厂模式,如果需要在方法里写很多与对象创建有关的业务代码,而且需要创建的对象还不少的话,我们就要在这个简单工厂类里编写很多个方法,每个方法都的写很多相应的业务代码,这样就会使得简单工厂类变得很庞大和臃肿,耦合性很高
工厂方法模式是对简单工厂模式进一步解耦。因为工厂方法模式中是一个子类对应一个工厂类,而这些工厂类都实现于一个抽象接口。这相当于把原本会因为业务代码而庞大的简单工厂类,拆分成一个个工厂类,这样代码就不会耦合在同一个类中了
在平时中有没有用到过工厂模式
- 在mybatis中,会使用SqlSeSessionFactory来根据不同的mybatis配置文件来创建不同的Session对象