当并非所有成员都可用时,如何定义类

时间:2017-09-27 15:16:05

标签: oop

我有一个类X,除了数据库ID之外还有一些成员变量, X的对象将由某个函数处理,并与ID一起返回

问题是这种情况下最好的数据表示是什么? 我有以下几种选择

选项A:
定义Class XClass XwithID,并在ID可用时将X转换为XwithID

选项B:
定义Class X并返回对< ID,X>

选项C:
使用内部ID定义Class X,如果在为ID分配值之前访问了ID,则抛出异常。

在这种情况下,有哪些更好的选择或最佳做法?

1 个答案:

答案 0 :(得分:0)

另一个选项可能是:将ID属性设置为readonly,不可创建的类(即私有或受保护的构造函数)以及其中的某种工厂:x.CreateOne()分配ID。