繁体   English   中英

Java工厂模式与枚举

[英]Java Factory Pattern with Enum


我必须将工厂模式与单例一起使用。 我的工厂类根据枚举类型创建两个不同的对象。

返回正确对象的最佳方法是什么?

解决方案1:在工厂中通过其他决定:

if(enumType == "objectA") return new objectA()

解决方案2:枚举类具有返回函数:

enum ObjectType{ ObjectA{ .. return new ObjectA()..}}

thx,迈克

在枚举上编写一个函数。 这样,当您添加新的枚举时,您就不会忘记在工厂方法中添加一个子句。

通常,对于几乎任何解决方案,我都赞成多态和方法实现优于if / else if等序列。 它更容易出错,并且问题将在编译时而不是运行时捕获。

如果您只能有一个类的两个实例,那么我将使用一个Enum,除非它需要另一个类作为超类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM