我正在尝试对我们领域中的一些对象进行建模,发现一些对象可能存在版本问题。即,用户可能会在一段时间内创建新的对象版本。因此,我需要在程序中对它们进行建模。我认为这是软件设计中常见的问题。
最初,我想到了模仿源代码控制版本概念,并提出了一个版本化对象概念和类似于check-in、check-out等方法。但是,我感觉这并不是很“系统化”,因为我没有探索模式(即,我觉得自己犯了罪,比如:
- 我没有涵盖寻找多个解决方案等方面 - 没有查阅能够给我更可靠参考的文献等)。
因此,我目前的问题是,为了进行系统化建模,我需要寻找能够解决版本建模问题的模式,最好是在文献中找到最佳方案。
于是,我谷歌了一下这样的模式,只找到了Temporal Object pattern。但是,我不确定这是否真的是我想要的。你们有什么关于这种模式的建议吗?
[自行编辑]也许我没有很好地描述这个问题。您可以将问题视为源代码控制文件版本问题。我有几种类型的对象(存储在数据库中),可以有几个版本。在我的应用程序中,我必须处理所有这些版本,还必须创建对象的新版本(最终将存储在数据库中)。我正在寻找某种可引用的模式,以便为访问/修改/添加这些对象的新版本建模接口。我能想到的基本接口是IVersionedObject,其中包括checkout、checkin、undoCheckout等方法。但是,这是我根据观察源代码控制系统得出的想法。我不认为它是一种软件设计模式。因此,期待上述问题的一些非常详细的设计模式。
最初,我想到了模仿源代码控制版本概念,并提出了一个版本化对象概念和类似于check-in、check-out等方法。但是,我感觉这并不是很“系统化”,因为我没有探索模式(即,我觉得自己犯了罪,比如:
- 我没有涵盖寻找多个解决方案等方面 - 没有查阅能够给我更可靠参考的文献等)。
因此,我目前的问题是,为了进行系统化建模,我需要寻找能够解决版本建模问题的模式,最好是在文献中找到最佳方案。
于是,我谷歌了一下这样的模式,只找到了Temporal Object pattern。但是,我不确定这是否真的是我想要的。你们有什么关于这种模式的建议吗?
[自行编辑]也许我没有很好地描述这个问题。您可以将问题视为源代码控制文件版本问题。我有几种类型的对象(存储在数据库中),可以有几个版本。在我的应用程序中,我必须处理所有这些版本,还必须创建对象的新版本(最终将存储在数据库中)。我正在寻找某种可引用的模式,以便为访问/修改/添加这些对象的新版本建模接口。我能想到的基本接口是IVersionedObject,其中包括checkout、checkin、undoCheckout等方法。但是,这是我根据观察源代码控制系统得出的想法。我不认为它是一种软件设计模式。因此,期待上述问题的一些非常详细的设计模式。