Hle*_*kyi 1 language-agnostic types
考虑以下片段:
class User {
String id;
...other fields
}
Run Code Online (Sandbox Code Playgroud)
class Id extends String {
}
class User {
Id id;
...other fields
}
Run Code Online (Sandbox Code Playgroud)
我应该使用哪一种?我从未见过任何人使用他们自己的 Id 类型。现在我在想:这样做有什么缺点吗?
这种技术被称为microtyping,有时小小的打字。它往往会使您的代码更具表现力,从而更安全和更具可读性。然而,它也创造了另一层间接性:代码的读者必须了解 anId
是什么才能完全理解它。她可能已经知道 aString
是什么了。
一般来说,我强烈推荐微打字。可能有些情况可能会做得过头,但到目前为止我还没有找到。所以别担心。
关于您的具体实现:在某些语言(如 Java)中,不可能从标准类(如String
. 在 C++ 等其他语言中,这是可能的,但不推荐。因此,我宁愿使用组合而不是继承:
class Id {
private String id;
...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
63 次 |
最近记录: |