我正在尝试使用Core Data和Objective C实现策略模式。
为了简化,我有一个多语言Text
实体,它有几个属性,例如上次保存的Date
和作者等的NSSString
等。想要添加对Language
实体的引用,该实体可能是几个子类中的一个,例如French
,Italian
等等,在{1}}中保留NSString
个文本类名的语言。每个Language
子类都可以实现自己的translateTo
和translateFrom
方法,Text
实例不需要担心它。简单的战略模式。
Created by yuml.me http://yuml.me/1caedd69
我真的很难与Core Data建立这种关系,根据实例的细节,可以使用自己的Text
实现设置某个Language
实体。< / p>
我想简而言之,我要做的是创建一个“has-a”关系,Text
实体中的实体可以是Language
的几种子类型之一。
核心数据对我来说很新鲜,所以如果我完全忽略了这一点,或者错过了一些明显的东西,请告诉我。
答案 0 :(得分:3)
您可以拥有抽象实体。我将创建一个语言抽象实体,一个文本和语言之间的关系,以及语言的具体子实体,称为意大利语,法语等。使用Xcode编辑器的示例:The Xcode editor showing a diagram much like the one in the original question http://files.droplr.com.s3.amazonaws.com/files/762938/1u3s2W.Screen%20shot%202010-08-05%20at%2010%3A50%3A57.png
然后,您可以根据需要将文本的.language关系设置为新的意大利语或法语NSManagedObject
。