Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/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
Design patterns 通用编码框架&;解码_Design Patterns - Fatal编程技术网

Design patterns 通用编码框架&;解码

Design patterns 通用编码框架&;解码,design-patterns,Design Patterns,我正在开发一个使用数据库的应用程序 在将值存储到数据库之前,我正在对数据进行编码。在检索数据时,我必须进行反向编码以获取原始数据 出于这个目的,我创建了一个类,其中有各种字段保存值,还有一个编码方法和一个解码方法 根据我的说法,这种编码方法的问题是,在将来,如果我使用不同的编码方法,那么我必须同时编写编码和解码方法 编码和解码方法非常简单,可以将3D数组转换为字符串列表 有谁能给我提出更好的解决同样问题的方法吗?是的-采用抽象的方法 您将编码器和解码器抽象为不同的接口。然后在数据持有者类中使用合

我正在开发一个使用数据库的应用程序

在将值存储到数据库之前,我正在对数据进行编码。在检索数据时,我必须进行反向编码以获取原始数据

出于这个目的,我创建了一个类,其中有各种字段保存值,还有一个编码方法和一个解码方法

根据我的说法,这种编码方法的问题是,在将来,如果我使用不同的编码方法,那么我必须同时编写编码和解码方法

编码和解码方法非常简单,可以将3D数组转换为字符串列表

有谁能给我提出更好的解决同样问题的方法吗?

是的-采用抽象的方法

您将编码器和解码器抽象为不同的接口。然后在数据持有者类中使用合成来引用编码器/解码器。如果您正在使用,那么编码器/解码器将被注入,而数据保持器不具备实际实现的知识。或者拥有一个服务,该服务将以数据持有者为例,并基于附加的实现(再次使用DI)应用编码器/解码器


希望这能有所帮助。

我已经做了与上面提到的相同的事情。。。我能更有效地做同样的事情吗?@Mew:你上面的帖子说你把这些方法作为拥有数据的同一个类的一部分。我建议您将其抽象为编码器,并使用间接寻址和DI,您可以灵活地动态更改编码器/解码器。