工厂模式
工厂模式
简单工厂模式(静态工厂方法模式)
不属于23种GOF设计模式之一
简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。
spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。
public class PhoneFactory {
public Phone getPhone(String phoneType) {
if (phoneType.equalsIgnoreCase("MI")) {
return new MiPhone();
} else if (phoneType.equalsIgnoreCase("OPPO")) {
return new OppoPhone();
}
return null;
}
}
工厂方法模式
简单工厂模式,如果要新增一种类型的话,就必须要修改工厂类,违反了开闭原则。
工厂方法模式将每个类型都对应了一种工厂类,提取出一个公共的工厂抽象类
MyBatis中获取连接工厂
SqlSessionFactoryBuilder builder = new SqlSessionBuilder();
try{
InputStream is = Resources.getResourceAsStream("mybatis.xml");
SqlSessionFactory factory = builder.build(is);
} catch (IOExceprion e) {
...
}
抽象工厂模式
工厂方法模式只针对一种产品,但是要是新增其他产品的话就需要用到抽象工厂模式。
其实就是在工厂类中直接新增第二个产品就行