日期:2014-05-17  浏览次数:20689 次

问个类的设计问题
有两份相关但不同的数据data1,data2,
假如说为data1建类A1,data2建类A2,
那data1->data2的转换这个功能归谁?

不知道这种问题该发到哪个区,就乱选个区了。。
求大神解答。

------解决方案--------------------
这个功能一般归第3方。

比如桥接/适配,比如net框架里的各种convert(convert也是明显的第三方),各种parse(parse及tryparese虽然看着在类身上,但是其实都是静态方法,严格滴说他和原来的类并没多大关系)
------解决方案--------------------
在我们设计代码时,当然是要尽量少创建class啦。在一些时候,已经形成了历史习惯,我们必须进行妥协。例如我们可能写一个 MyConverter.ConvertToA2(A1) 的方法。

但是这可不是为了看起来好看。你没有必要搞什么 MyConverter 也很自然时(例如根本不涉及“破坏”A1类型定义时),当然可以放到A1中。