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,设计模式,抽象工厂模式
0
投稿

猜你喜欢

  • C#实现对文件进行加密解密的方法

    2023-05-28 14:02:44
  • 基于java集合中的一些易混淆的知识点(详解)

    2023-08-29 03:06:26
  • 教你安装配置Android Studio

    2023-07-09 03:26:17
  • Java中多媒体文件上传及页面回显的操作代码

    2021-11-21 09:45:31
  • spring循环依赖策略解析

    2022-09-13 13:49:10
  • c#使用正则表达式匹配字符串验证URL示例

    2023-01-01 10:40:10
  • 实战分布式医疗挂号系统开发医院科室及排班的接口

    2021-05-27 14:21:16
  • 浅谈Java的虚拟机结构以及虚拟机内存的优化

    2021-12-01 21:59:49
  • 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
  • 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
  • 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
  • asp之家 软件编程 m.aspxhome.com