我们正在编写一个类层次结构,它们实现了各种表示语言的方法。有一个基类LanguageCode
类,其中包含多个子类,包括ISO 639-1 codes的ISO1LanguageCode
(例如:'en'),ISO 639-2 codes的ISO2LanguageCode
(例如:'eng ')和HumanReadableLanguageCode
(例如:'英语')。在任何时候,我们都需要能够在任何两个子类之间进行转换。我们可以在这里使用一些设计模式魔术来帮助吗?
我们的第一个想法是标准化基类,并使每个子类在自身和基类的标准之间编写转换例程。这样,要在ISO2LanguageCode
和HumanReadableLanguageCode
之间进行转换,请使用LanguageCode
作为桥梁。
答案 0 :(得分:2)
只有一套语言。每种语言都有一个-1代码,一个无用的-2代码和一个-3代码。还有一个人类可读的名字。因此,使用访问器创建一个枚举以返回不同的代码,以及多个查找静态方法。