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