Design patterns 使用适配器模式,而不是将代码从枚举器重构到迭代器
我阅读了第248页的《头先设计模式2004》中关于现实世界中适配器模式的内容Design patterns 使用适配器模式,而不是将代码从枚举器重构到迭代器,design-patterns,adapter,Design Patterns,Adapter,我阅读了第248页的《头先设计模式2004》中关于现实世界中适配器模式的内容 它谈到了一个使用枚举器的旧Java应用程序,但现在它变成了一个遗留代码,Java不再维护它了。 解决方法是使用适配器模式将枚举器与迭代器(新Java版本)相适应 他们为什么不把代码从枚举器重构(编辑)到迭代器,而不是使用模式呢?我想我找到了答案,为什么它是首选的适配器模式,而不是从枚举器重构到迭代器 -迭代器是非线程安全的 -枚举器是线程安全的 首先,我想指出的是,它还没有被弃用。你可以自由使用。你使用的措辞有点误导(
它谈到了一个使用枚举器的旧Java应用程序,但现在它变成了一个遗留代码,Java不再维护它了。
解决方法是使用适配器模式将枚举器与迭代器(新Java版本)相适应
他们为什么不把代码从枚举器重构(编辑)到迭代器,而不是使用模式呢?我想我找到了答案,为什么它是首选的适配器模式,而不是从枚举器重构到迭代器
-迭代器是非线程安全的
-枚举器是线程安全的
首先,我想指出的是,它还没有被弃用。你可以自由使用。你使用的措辞有点误导(至少对我来说) 这本书建议的是,在一些遗留API中,它们可能公开枚举接口,但不公开迭代器接口。例如,您正在程序中使用一个库,其中包含一个将返回
枚举的方法,而该遗留类根本不提供获取迭代器的方法
在本例中,如果希望程序有一个迭代器,可能需要创建一个适配器类。您可以编辑旧库的代码吗?是的,当然,但是修改您正在使用的外部库代码总是一个坏主意。您可以查看此线程: