如何解决这是一种反模式/代码气味吗? - 使用枚举/常量类通过 [] 而不是使用点属性来访问类属性
class FruitFields {
static const NAME = "name";
static const DESCRIPTION = "descriptionText";
}
class Fruit {
final string name;
final string descriptionText;
Fruit(required string id,required string descriptionText);
}
然后,当我想用 Fruit 做某事时,请使用 [] 而不是 。符号。
var banana = new Fruit('banana','a yellow fruit')
banana[FruitFields.DESCRIPTION] = 'a very yellow fruit'
// instead of
banana.descriptionText = 'a very yellow fruit'
为什么?所以我可以重构而无需思考。如果我想将描述更改为概要,则可以更轻松地在 FruitFields.DESCRIPTION verse apple.descriptionText、banana.descriptionText 上查找和替换...小心。
我不知道这是否愚蠢。
解决方法
如果您使用字符串,编译器将无法帮助您发现值中的拼写错误。但是,使用枚举,编译器只允许您使用有效值。您还可以获得性能优势。枚举值只是一个数字,处理数字比处理字符串更快。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。