Java设计模式之抽象工厂模式浅析讲解
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);
}
}到此这篇关于Java设计模式之抽象工厂模式浅析讲解的文章就介绍到这了,更多相关Java抽象工厂模式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
mybatis查询到了数据,但是实体类个别字段为null问题
这篇文章主要介绍了mybatis查询到了数据,但是实体类个别字段为null问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-01-01
Spring的Bean注入解析结果BeanDefinition详解
这篇文章主要介绍了Spring的Bean注入解析结果BeanDefinition详解,BeanDefinition描述了一个bean实例,拥有属性值、构造参数值和具体实现的其他信息,其是一个bean的元数据,xml中配置的bean元素会被解析成BeanDefinition对象,需要的朋友可以参考下2023-12-12
SpringBoot的ResponseEntity类返回给前端具体讲解
这篇文章主要给大家介绍了关于SpringBoot的ResponseEntity类返回给前端的相关资料,ResponseEntity是Spring框架中用于封装HTTP响应的类,可以自定义状态码、响应头和响应体,常用于控制器方法中返回特定数据的HTTP响应,需要的朋友可以参考下2024-11-11


最新评论