软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。汇总目录链接:【玩转23种Java设计模式】学习目录汇总整理
一、简介
工厂方法模式,是⼀种创建型设计模式。定义一个用于创建产品的接口,由子类决定生产什么产品。
工厂方法模式是典型的解耦框架,这种设计模式也是 Java 开发中最常见的⼀种模式。
二、实例
实例:手机工厂生产手机。
1、手机标准接口(Phone)
public interface Phone {
void call();
}
2、华为手机实现类(HuaWeiPhone)
public class HuaWeiPhone implements Phone {
@Override
public void call() {
System.out.println("huawei phone call");
}
}
3、小米手机实现类(XiaoMiPhone)
public class XiaoMiPhone implements Phone {
@Override
public void call() {
System.out.println("xiaomi phone call");
}
}
4、手机工厂接口(PhoneFactory)
public interface PhoneFactory {
Phone makePhone();
}
5、华为手机工厂实现类(HuaWeiPhoneFactory)
public class HuaWeiPhoneFactory implements PhoneFactory {
@Override
public Phone makePhone() {
return new HuaWeiPhone();
}
}
6、小米手机工厂实现类(XiaoMiPhoneFactory)
public class XiaoMiPhoneFactory implements PhoneFactory {
@Override
public Phone makePhone() {
return new XiaoMiPhone();
}
}
7、测试类(Main)
public class Main {
public static void main(String[] args) {
HuaWeiPhoneFactory huaWeiPhoneFactory = new HuaWeiPhoneFactory();
Phone phone = huaWeiPhoneFactory.makePhone();
phone.call();
}
}
控制台输出:
huawei phone call
三、总结
1、优点
- 遵循开闭原则,良好的封装性,降低模块间耦合。
- 易扩展。新增产品,无需去修改之前类中的代码。
2、缺点
- 每增加一个新产品,对应要增加产品类和工厂实现类,如果产品较多,不简洁。
3、应用场景
- 连接数据库。在使用JDBC连接数据库时,数据库从MySQL切换到Oracle,只需切换一下驱动名称。