我们正在编写一个类层次结构,用于实现表示语言的各种方式。有底座LanguageCode
具有多个子类的类,包括 ISO1LanguageCode
对于 ISO 639-1 codes (例如:'en'),ISO2LanguageCode
对于 ISO 639-2 codes (例如:“eng”)和 HumanReadableLanguageCode
(例如:“英语”)。任何时候,我们都需要能够在任意两个子类之间进行转换。我们可以在这里使用一些设计模式魔法来提供帮助吗?
注意:
我们的第一个想法是标准化基类,并让每个子类在其自身与基类上的标准之间编写一个转换例程。这样,就可以在 ISO2LanguageCode
之间进行转换。和HumanReadableLanguageCode
,使用LanguageCode
作为一座桥梁。
最佳答案
只有一组语言。每种语言都有一个-1代码、一个无用的-2代码和一个-3代码。以及一个人类可读的名称。因此,创建一个带有访问器的枚举来返回不同的代码,以及多个查找静态方法。
关于java - 子类之间转换的设计模式fu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9626405/