1

我正在尝试使用 Core Data 和 Objective C 来实现策略模式。

为了简化,我有一个多语言Text实体,它有几个属性,例如Date最后保存的和NSSString作者等等。我想添加对Language实体的引用,它可以是几个子类之一,例如asFrenchItalian,以类名的语言保存一个NSStringof 文本。每个Language子类都可以实现自己的方法translateTotranslateFrom方法,Text实例不需要担心。简单的策略模式。

由 yuml.me 创建 http://yuml.me/1caedd69

我真的很难与 Core Data 建立这种关系,在这种关系中,可以根据实例的细节Text使用自己的实现来设置某个实体。Language

我想简而言之,我想要做的是创建一个“has-a”关系,其中实体内部的Text实体可以是Language.

Core Data 对我来说很新,所以如果我完全错过了这里的重点,或者错过了一些非常明显的东西,请告诉我。

4

1 回答 1

3

您可以拥有抽象实体。我会创建一个语言抽象实体,文本和语言之间的关系,以及语言的具体子实体,称为意大利语、法语等。Xcode 编辑器的示例:Xcode 编辑器显示的图表与原始问题中的图表非常相似http://files.droplr.com.s3.amazonaws.com/files/762938/1u3s2W.Screen%20shot%202010-08-05%20at%2010%3A50%3A57.png

然后,您可以NSManagedObject根据需要将 Text 的 .language 关系设置为新的意大利语或法语。

于 2010-08-05T08:52:20.430 回答