java常用设计模式的学习笔记(工厂模式)
程序员文章站
2024-01-23 18:21:40
...
java 常用设计模式——工厂模式(Factory pattern)
一、工厂模式
首先,工厂模式也是一种创建型设计模式,是最常用的Java设计模式之一。在工厂模式下,客户端直接通过一个工厂类(示例中的MIUIFactory类)去使用自己所需求的对象及其方法,且不用管该对象的具体创建过程和其类的实现方法。该模式主要解决接口选择的问题。
举个例子:小米手机制造商是一个工厂类,它可生产的小米手机有小米9,小米10等型号,客户只需要根据需求从制造商购买手机,而不需要去知道它们是怎么被生产的。
二、实现示例
1.创建超类
代码如下:
public class MIUIPhone {
// 手机型号
private String phoneModel;
// 构造方法
public MIUIPhone(String phoneModel){
this.phoneModel=phoneModel;
}
// 显示手机型号
public void displayModel(){
System.out.println("MI model is "+phoneModel);
}
}
2.创建具体类
代码如下(MI9):
public class MI9 extends MIUIPhone {
public MI9(String phoneModel) {
super(phoneModel);
}
}
代码如下(MI10):
public class MI10 extends MIUIPhone {
public MI10(String phoneModel) {
super(phoneModel);
}
}
3.创建工厂类
代码如下:
public class MIUIFactory {
//查看手机型号
public void getMIModel(String Model){
if(Model.equalsIgnoreCase("MI9")){
//查看小米9型号
new MI9(Model).displayModel();
}else if(Model.equalsIgnoreCase("MI10")){
// 查看小米10型号
new MI10(Model).displayModel();
}
}
}
4.主类实现
代码如下:
String model1="MI9";
String model2="MI10";
MIUIFactory miuiFactory=new MIUIFactory();
miuiFactory.getMIModel(model1);
miuiFactory.getMIModel(model2);
三、应用场景
在了解使用场景前先来看看工厂模式的优点:
(1)解耦:不需要创建和初始化对象,只去使用即可,这样也方便后期的更改和维护。
(2)降低了代码的重复性:在工厂类中创建好类后,可根据需求在多处使用,减少了创建对象代码的重复。
(3)可扩展性:如果需要一个新的类去实现新的需求,可以再增加一个具体实现类,然后再工厂类创建新的对象。
应用场景例如,日志记录器:可以根据将日志存到本地,远程服务器等。
数据库选用:我们可以设计一个工厂类来选择使用那种数据库。
上一篇: JAVA 设计模式之工厂模式学习笔记