【发布时间】:2010-09-10 15:22:49
【问题描述】:
将对数据进行操作的函数移到包含该数据的类中时,您在哪里划线?例如,假设您有一个简单的类,其中存储了天气描述,其中包含温度、湿度、风速和风向以及进行测量的时间等变量。现在想象你有一个这个类的对象,你想把它传输给其他人——另一个进程,另一台机器,等等。您是否将用于将对象传输到对象本身的代码 - 例如,通过向简单数据类添加 Send(destination-type) 方法?或者你是否将这种特性保存在可以通过介质发送和接收任何东西的单独类中——无论是网络、文件 i/o、进程间通信还是类似的东西?
我的直觉是让我的数据类保持简单,并在我想传输它们时将它们包装起来——在将它们序列化并以他们理解的简单接口呈现发送者和接收者类的类中。另一种选择似乎是将包括厨房水槽在内的所有内容都放入简单的数据类中——每个可能对该数据进行操作的函数,无论多么间接。简而言之,在我看来,网络错误处理代码不属于简单的数据类。
这对我来说似乎很明显,但我不断看到开发人员将 Send() 方法放在他们的类中。他们甚至将 message 类告诉 Send() 自己,这对我来说似乎非常违反直觉;如果我在一张纸上写一封信,我不会让纸自己发送。我把信包在一个信封里递给邮递员,因为他有一辆面包车和一张地图。人们怎么看?
【问题讨论】:
-
感谢所有回复的人 - 这是我关于 SO 的第一个问题,这是一次非常积极的经历。
标签: oop class data-structures