Должен ли я использовать префикс «get» в имени моего метода? - PullRequest
9 голосов
/ 13 декабря 2011

У меня есть этот абстрактный класс, который используется в качестве хранилища данных.

public abstract class AbstractDataSource {
    public abstract DataRow getDataRow(Key key); //or just dataRow(Key key)???
}

public class CSVDataSource extends AbstractDataSource {
    @Override
    public DataRow getDataRow(Key key) { //or just dataRow(Key key)??
        //fetch row from file and return dataRow
        //....
        return dataRow;
    }
}

Более конкретные классы (т.е. подклассы этого класса) реализуют методы для различных источников данных, например, CSV, ARFF и других форматов.

Мне было интересно, подходит ли здесь ключевое слово "get", поскольку поиск данных не просто возвращает переменную, но может также потребовать доступа к файловой системе или чего-то еще.

Так что мне следует использоватьпрефикс "get" или нет?

Спасибо

Ответы [ 2 ]

10 голосов
/ 13 декабря 2011

Я согласен с тем, что использование ключевого слова get иногда может показаться не интуитивным, если за ним стоит реальная логика. В вашем случае lookup или find префиксы могут быть хорошими заменителями. Также есть retrieve как предложено @Thomas.

Поначалу этот вопрос может показаться не по теме. Но наименование - это, по крайней мере для меня, неотъемлемая часть хорошего дизайна приложения.

2 голосов
/ 13 декабря 2011

Хотите ли вы, чтобы этот метод был получателем бина , чтобы вы могли использовать его с такими вещами, как BeanUtils ? Учитывая, что он выполняет тяжелые операции ввода-вывода и некоторую логику, вероятно, нет, поэтому я бы назвал это по-другому.

...