mic*_*cho 0 java design-patterns
我必须使用单件的工厂模式.我的工厂类根据枚举类型创建两个不同的对象.
什么是返回正确对象的最佳方法.
解决方案1:通过工厂中的if-else决定:
if(enumType == "objectA") return new objectA()
Run Code Online (Sandbox Code Playgroud)
解决方案2:enum类有一个返回函数:
enum ObjectType{ ObjectA{ .. return new ObjectA()..}}
Run Code Online (Sandbox Code Playgroud)
thx,迈克
在枚举上写一个函数.这样,在添加新枚举时,您不会忘记为工厂方法添加子句.
作为一个规则,我赞成多态性和方法实现了序列if/ else if等几乎任何解决方案.它更不容易出错,并且会在编译时捕获问题,而不是运行时.
| 归档时间: |
|
| 查看次数: |
1656 次 |
| 最近记录: |