Nic*_*ner 1 java oop software-design
我有一个readData()函数读取文件,返回几个不同的解析数据对象.现在,返回类型readData()是Object[]:
Object[] data = readData();
MyGenome genome = data[0];
Species[] breeds = data[1];
//etc
Run Code Online (Sandbox Code Playgroud)
这感觉很尴尬.有没有更好的方法来返回这些数据?我不希望有像这样的单独函数readGenome(),readSpecies()因为这需要迭代文件两次.另外,我宁愿将所有数据收集包装在一个函数中.
类似的问题:在两个字符串之间返回至少四个字符匹配的函数:
public int[][] findMatch(String g0, String g1) { /* cool stuff */ }
//...
int[][] bounds = findMatch("ACOIICOCOCICOICA", "AOCCCCCCICCIIIIIOIAOCICOICOICA");
Run Code Online (Sandbox Code Playgroud)
bounds[0][0]g0上的左边界是哪里,是g0 bounds[0][1]上的右边界,bounds[1][0]是g1上的左边界,等等.这也有点尴尬.如果不连续查找键,很难对结果进行编码.
创建一个新类:
class MyAnalysedGenome {
MyGenome genome;
Species[] species
...
}
Run Code Online (Sandbox Code Playgroud)
并返回.您可能会发现您还应该有其他功能.也许围绕你的getData()调用的代码.
如何使用强类型类来表示readData()的复杂返回类型?
public class Taxonomy
{
public MyGenome genome;
public Species[] breeds;
//etc
{
Taxonomy data = readData();
Run Code Online (Sandbox Code Playgroud)
您可以针对搜索范围问题执行相同的操作
public class SearchBoundary
{
public int left;
public int right;
}
SearchBoundary resultBounds = findMatch(searchBounds);
Run Code Online (Sandbox Code Playgroud)