考虑以下片段:
class User {
String id;
...other fields
}
class Id extends String {
}
class User {
Id id;
...other fields
}
我应该使用哪一个?我从来没有见过使用自己的Id类型的人。现在我在想:这样做有什么缺点吗?
答案 0 :(得分:3)
这种技术称为微型打字,有时候是微型打字。它往往使您的代码更具表现力,从而更安全,更易读。
然而,它还创建了另一层间接:代码的读者必须了解Id
完全理解它的内容。她可能已经知道String
是什么了。
一般来说,我强烈建议使用微型打样。可能有些情况可能会过度但我到目前为止还没找到。所以别担心。
关于您的具体实现:在某些语言(如Java)中,无法从String
等标准类派生。在其他语言如C ++中,它是可能的但不推荐。因此,我宁愿使用组合而不是继承:
class Id {
private String id;
...
}