相关疑难解决方法(0)

对象是应该将自己写入文件,还是应该使用其他对象来执行I/O?

注意:很抱歉这个问题很长!

我试图理解面向对象背后的一些关键领域,我无法以某种方式决定我的特定问题.

假设我有一个充满可爱数据的对象.班级鲍勃.

Bob myBob = new Bob("This string is data");
Run Code Online (Sandbox Code Playgroud)

假设我想将myBob的内容保存到xml文件(bob.xml)

我是否应该在bob上写一个对象来写出内容,或者我应该让myBob这样做吗?

案例1:对象行为

Writer myWriter = new Writer(myBob, "C:\\bob.xml");
Run Code Online (Sandbox Code Playgroud)

案例2:保存方法

myBob.Save("C:\\bob.xml");
Run Code Online (Sandbox Code Playgroud)

有些人支持选项一,因为这意味着如果更改了编写文件的代码,则不需要在每个Save方法中更新; 我想,促进代码重用.我的问题是从对象中获取所有数据,这些对象可能没有访问者的私有数据.

选项二的情况是该方法仅对对象持有的数据起作用,这就是它应该的方式.不受其他物体的干扰.

或者是我的问题的答案之一是"案例依赖"问题?如果是这样,你怎么知道何时一种方法优先于另一种?

c# oop io design-patterns

47
推荐指数
3
解决办法
5397
查看次数

标签 统计

c# ×1

design-patterns ×1

io ×1

oop ×1