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抽象工厂模式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
java.sql.Date和java.util.Date的区别详解
Java中有两个Date类,一个是java.util.Date通常情况下用它获取当前时间或构造时间,另一个是java.sql.Date是针对SQL语句使用的,它只包含日期而没有时间部分,这篇文章主要给大家介绍了关于java.sql.Date和java.util.Date区别的相关资料,需要的朋友可以参考下2023-03-03SpringBoot基于RabbitMQ实现消息延时队列的方案
在很多的业务场景中,延时队列可以实现很多功能,此类业务中,一般上是非实时的,需要延迟处理的,需要进行重试补偿的,本文给大家介绍了SpringBoot基于RabbitMQ实现消息延迟队列的方案,文中有详细的代码讲解,需要的朋友可以参考下2024-04-04详谈Java中net.sf.json包关于JSON与对象互转的坑
下面小编就为大家分享一篇Java中net.sf.json包关于JSON与对象互转的坑,具有很好的参考价值,希望对大家有所帮助2017-12-12
最新评论