Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 设计决策:将代码转换为显示字符串_Oop_Design Patterns - Fatal编程技术网

Oop 设计决策:将代码转换为显示字符串

Oop 设计决策:将代码转换为显示字符串,oop,design-patterns,Oop,Design Patterns,我正在开发一个包含相当多字段的域对象的项目。这些字段仅将编号存储为代码或ID 要显示这些域对象,我必须编写一些逻辑来将代码转换为显示标签 现在,根据我最直接的想法,我只需编写一个实用程序类来进行转换。 然而,由于这应该是一个非常常见的情况,我只是想知道有没有更好的做法做这种工作?(以更面向对象的方式) 在这种情况下有没有设计模式 非常感谢你 我不喜欢实用程序类的概念。杂物柜是你倾倒任何没有标签的东西的地方。您确实有此操作的标签序列化程序或标签程序 创建一个接口Serializer或Labeler

我正在开发一个包含相当多字段的域对象的项目。这些字段仅将编号存储为代码或ID

要显示这些域对象,我必须编写一些逻辑来将代码转换为显示标签

现在,根据我最直接的想法,我只需编写一个实用程序类来进行转换。

然而,由于这应该是一个非常常见的情况,我只是想知道有没有更好的做法做这种工作?(以更面向对象的方式)

在这种情况下有没有设计模式


非常感谢你

我不喜欢实用程序类的概念。杂物柜是你倾倒任何没有标签的东西的地方。您确实有此操作的标签<代码>序列化程序或
标签程序

创建一个接口
Serializer
Labeler
或任何东西,并根据需要多次实现它(如果存在不序列化相同的域对象,或者如果需要额外的功能)


另一种方法是让域对象自己序列化,在这种情况下,任何可序列化对象都可以实现
serializable
接口,并且呈现函数只能接受
serializable
对象

与辩论类似。

听起来像是“外键”、“词典”或“地图”。
将“0”的“职业”映射为“教师”。
将“0”的“性别”映射为“女性”

如果您有足够的数据,您可以将其转储到数据库中。。。执行查找并转储结果:

field-name, value, text 
"occupation", 0, "Teacher"
"occupation", 1,"Engineer" 
"sex", 0, "Female"
然后,您可以“轻松”(ha-ha)根据需要向数据库表中添加越来越多的内容


当然,有“许多方法可以剥猫皮”。。。您可以使用一个包含字典/映射的代码文件来执行完全相同的查找。您可以“轻松”(哈哈)向代码文件添加更多内容。

谢谢您的评论!至于你的建议,它是否也可以用于我们想要单独标记ID的情况?例如,对于一个有职业和性别的班级成员,我想将职业0转换为“教师”,1转换为“工程师”,2转换为“士兵”,并将性别0转换为“女性”,1转换为“男性”。我之所以这样问,是因为序列化听起来像是将整个对象转储为我想要的字符串表示的一种方式。但是我想要的是一种更微妙的方式,根据需要转换每个领域。你能解释一下为什么你在没有提供任何有用信息的情况下否决了这个问题吗?