让这更多OOPey? - 结构好吗?

时间:2011-01-01 16:37:52

标签: oop static structure

我只想知道是否可以改进处理所有磁盘访问功能的特定类的结构

我的程序的结构是我有一个名为Disk的类,它从平面文件和数据库中获取数据,你猜对了,硬盘驱动器。我有像

这样的功能

LoadTextFileToStringList, WriteStringToTextFile, DeleteLineInTextFile 等

是一种“通用方法”

在同一个类中,我还有一些更具体的方法,例如GetXFromDisk,其中X可能是数据库表/查询中的特定字段。

我是否应该从专业化的方法中分离出通用方法。我应该创建另一个继承泛型方法的类。目前我的班级是静态的,因为没有必要具有班级的内部状态。

我不是在寻找我吗?

由于 托马斯

2 个答案:

答案 0 :(得分:2)

如果你只使用静态静态函数,那么就像你说的那样,你并不是真正的OOPing。它用OO语言编写程序代码。

您应该创建代表问题域中对象的类,例如FileTextFile。这些类应具有DeleteLineWriteLIneLoad等操作。

此外,在您编写的任何语言中,它可能都有一个好的文件IO库。尽量在代码中使用它。如果需要,只需在库类上编写包装器以提供一些额外的功能。

答案 1 :(得分:0)

嗯,您在代码中看到的是一个Utilities类,您可以在其中捆绑所有文件方法 这可能表明一些设计问题,但恕我直言,这是可以的,因为在OOP设计中通常有实用程序类 它具有能够添加额外方法或修改现有方法的好处,因为您不会有任何派生类扩展Utility类以受到影响。
例如,java到处都有静态方法。例如。 Collection上课 我建议让类的构造函数为private,并且命名很明显,这是一个Utilities类。