Java设计模式之抽象工厂模式浅析讲解
作者:niuyongzhi 时间:2022-08-08 18:26:47
1.介绍
当系统准备为用户提供一系列相关对象,又不想让用户代码和这些对象形成耦合时,就可以使用抽象工厂模式。
2.如何实现
1)抽象产品--Car
2)具体产品--BYDCar、TSLCar
3)抽象工厂Factory
4)具体工厂--BYDFactory、TSLFactory
3.代码实现
/**
* 抽象产品
*/
public abstract class Car {
public abstract String getName();
}
/**
* 具体产品
*/
public class BYDCar extends Car {
String name;
public BYDCar(String name){
this.name = name;
}
@Override
public String getName() {
return name;
}
}
/**
* 抽象工厂
*/
public abstract class CarFactoty {
public abstract Car createCar(String name);
}
/**
* 具体工厂
*/
public class BYDFactory extends CarFactoty {
@Override
public BYDCar createCar(String name) {
return new BYDCar(name);
}
}
4.总结
1)抽象工厂模式可以为用户创建一系列相关的对象,是用户和这些类的对象解耦
2)使用抽象工厂模式可以方便的为用户配置一些列对象。
3)在抽象工厂模式中,可以随时增加“具体工厂”为用户提供一组相关的对象。
如:是上面的例子中,如果用户需要一特斯拉车,创建一个特斯拉对象和特斯拉工厂就能完成。
/**
* 具体产品
*/
public class TSLCar extends Car {
String name;
public TSLCar(String name){
this.name = name;
}
@Override
public String getName() {
return name;
}
}
/**
* 具体工厂
*/
public class TSLFactory extends CarFactoty {
@Override
public TSLCar createCar(String name) {
return new TSLCar(name);
}
}
来源:https://blog.csdn.net/niuyongzhi/article/details/123235214
标签:Java,设计模式,抽象工厂模式
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
C#实现对文件进行加密解密的方法
2023-05-28 14:02:44
基于java集合中的一些易混淆的知识点(详解)
2023-08-29 03:06:26
教你安装配置Android Studio
2023-07-09 03:26:17
![](https://img.aspxhome.com/file/2023/4/98684_0s.jpg)
Java中多媒体文件上传及页面回显的操作代码
2021-11-21 09:45:31
![](https://img.aspxhome.com/file/2023/2/66202_0s.png)
spring循环依赖策略解析
2022-09-13 13:49:10
![](https://img.aspxhome.com/file/2023/4/72304_0s.jpg)
c#使用正则表达式匹配字符串验证URL示例
2023-01-01 10:40:10
实战分布式医疗挂号系统开发医院科室及排班的接口
2021-05-27 14:21:16
![](https://img.aspxhome.com/file/2023/3/68143_0s.png)
浅谈Java的虚拟机结构以及虚拟机内存的优化
2021-12-01 21:59:49
![](https://img.aspxhome.com/file/2023/1/64921_0s.jpg)
C#高级静态语言效率利器之泛型详解
2023-01-24 09:18:02
Android调用手机摄像头拍照和录音功能
2022-10-22 15:37:16
Java泛型变量如何添加约束
2021-06-02 23:12:06
Java毕业设计实战之健身器材商城系统的实现
2022-12-18 01:39:56
![](https://img.aspxhome.com/file/2023/5/100355_0s.jpg)
Android中获取IMEI码的方法
2023-04-08 09:10:58
Android编程之短信窃听器实现方法
2023-11-01 00:48:22
Netty分布式高性能工具类同线程下回收对象解析
2023-05-24 22:00:55
Java中CyclicBarrier 循环屏障
2021-11-24 08:22:24
![](https://img.aspxhome.com/file/2023/3/76223_0s.png)
Javaweb mybatis接口开发实现过程详解
2022-03-11 22:02:21
Java实现Dijkstra输出最短路径的实例
2023-09-01 17:44:02
Java数据结构顺序表的详细讲解
2023-11-20 23:01:35
SpringBoot面试突击之过滤器和拦截器区别详解
2022-10-13 02:02:05
![](https://img.aspxhome.com/file/2023/8/84638_0s.png)