java设计模式—工厂模式
一.概述
工厂模式是将一些具有相同属性或功能的类通过一个工厂类进行管理,当需要创建一个实例时,只需在工厂里去获取即可,无需了解每一个类的具体逻辑。
二.应用场景
1.对数据库的操作,如果我们有一个完善的数据库工厂,则在编写代码时,就无需关心连接的什么数据库。
2.我们编写代码连接打印机时,其实就是工厂模式。
3.图片加载,可加载本地图片或网络图片时,可使用工厂模式。
三.模式示例:
假设我们系统连接了惠普和联想两台打印机,下面我们用调用打印机的方式讲解工厂模式的实现过程。
1.创建打印机接口
public interface Printer {
public void print();
}
2.创建实现具体打印功能的惠普打印机类
public class HpPrinter implements Printer{
@Override
public void print() {
System.out.println("This is HP printer");
}
}
3.创建实现具体打印功能的联想打印机类
public class LenovoPrinter implements Printer{
@Override
public void print() {
System.out.println("This is Lenovo printer");
}
}
4.创建打印机工厂类
public class PrinterFactory {
public Printer getPrinter(String type) {
if ("hp".equals(type)) {
return new HpPrinter();
} else if ("lenovo".equals(type)) {
return new LenovoPrinter();
} else {
return null;
}
}
}
5.模式调用
public class Test {
public static void main(String args[]){
PrinterFactory factory = new PrinterFactory();
Printer print = factory.getPrinter("lenovo");
print.print();
}
}