我正在读取一些文本文件以从中创建对象。哪个类应该根据 OOP 原则处理文本文件?
我的 GUI 对象有一个方法来绘制表格并用数据填充它。该数据要么从 HTML 页面解析,要么从缓存的文本文件读取。我可以想到两种方法来处理这个问题,我想知道哪一种更好。
选项 1:
public void drawSchedule()
{
try
{
if (CacheManager.hasData("schedule")) //this is not the complete logic, but enough for this post
{
String cacheString = CacheManager.readData(this, "schedule");
Schedule schedule = new Schedule(cacheString);
}
else
{
//read data from HTML page
}
catch (IOException e)
{
//generic error handling
e.printStackTrace();
}
}
选项 2:
public void drawSchedule()
{
try
{
if (CacheManager.hasData("schedule")) //this is not the complete logic, but enough for this post
{
String cacheString = CacheManager.readData(this, "schedule");
//parse data here so we end up with a bunch of variables
//courseList would be an ArrayList of Courses, if it makes any difference
Schedule schedule = new Schedule(firstDay, courseList);
}
else
{
//Read data from HTML page
}
catch (IOException e)
{
//generic error handling
e.printStackTrace();
}
}
最佳答案
老实说,这两种方法都是有效的,并且很大程度上取决于数据的性质以及对象的使用方式。事实上,人们很容易将这个问题标记为主要基于意见!
如果解析非常特定于这些文本文件,并且如果 Schedule
在许多其他地方使用,那么解析代码可能最好分开。
另一方面,如果该解析在多个地方都有用,那么将其放在 Schedule
中是有意义的。考虑不要重复自己和封装。您希望代码在任何有用的地方都可见,但在其他地方不可见,并且您只想拥有该代码一次。
Java 库中的示例包括 Date
类,它有一些通用构造函数,但还有 DateFormat
类,它能够完成所有工作处理 Date
与 String
之间的关系。
关于java - 从字符串创建对象的正确 OOP 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20915634/