oop – 我们应该总是喜欢枚举的多态吗?

观看后:The Clean Code Talks — Inheritance, Polymorphism, & Testing

我检查了我的代码,注意到一些switch语句可以重构为多态,但是我也注意到我只使用带有枚举的switch语句。这是否意味着枚举在OO设计中是“邪恶的”,应该通过多态来消除?

这不是枚举是邪恶的,它是switch语句。在C++ FAQ Book年有一个长时间的讨论,但其要点是:除了有限的区域 – 例如,从设备上的注册表中输入的数据的解释 – 一个大的开关梳子表明您正在使用数据区分子类型。为此,您应该只使用子类型,获得编译器的帮助来保持正确,也意味着当您(不可避免地)更改一组案例时,编译器将自动添加新的案例。
http://stackoverflow.com/questions/382000/should-we-always-favor-polymorphism-over-enums

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:oop – 我们应该总是喜欢枚举的多态吗?