有人评论了我的一些代码,我认为这些代码很有价值,我想查找一下设计模式来了解更多,但我很难确定它与哪个设计原则有关。
本质上,我有一个编码器/解码器对象。在一个方向上,它将接受一个字符串,并返回一个包含该字符串的信息的对象(假设一个具有单个整数的对象)。相反的方向将接受这个整数并返回一个字符串。
给我的建议是,如果一个方向接受一个字符串并返回一个对象,则相反的方向应该接受相同的对象并返回一个字符串。
这种界面对称性与什么(如果有的话)设计原则有关?
发布于 2017-12-05 20:35:32
此设计与逆函数的数学概念相对应:
如果两个函数f和g是这样的:
f: S -> D (f takes elements in set S and maps them to elements in set D)
g: D -> S (g takes elements in set D and maps them to elements in set S)
and for any x in S, g(f(x)) = x那么g就是f的反函数。
如果你把它转到你的问题上:
encode: object -> string
decode: string -> object
decode(encode(text)) = text没有人会质疑decode()是encode()的反面
https://softwareengineering.stackexchange.com/questions/361881
复制相似问题