Java - Абстрактный класс для содержания переменных?

Попробуйте это:

source = requests.get("https://github.com/bitcoin-dot-org/bitcoin.org/find/master").text
soup = bs(source, "lxml")
tbody = soup.find_all('tbody')[0]
print(tbody)
24
задан John Topley 25 October 2008 в 10:47
поделиться

3 ответа

Я думал бы, что что-то вроде этого будет намного лучше, так как Вы добавляете переменную, итак, почему бы не ограничить доступ и сделать его инструментом для очистки? Ваш метод get/методы set должен сделать то, что они говорят относительно олова.

public abstract class ExternalScript extends Script {

private String source;

public void setSource(String file) {
    source = file;
}

public String getSource() {
    return source;
}

Возвращение этого к вопросу, Вы когда-либо потрудились смотреть на то, где код метода get/метода set при чтении его? Если они все делают получение и установку тогда, Вы не должны волноваться о том, что функция 'делает' при чтении кода. Существует несколько других причин думать о также:

  • , Если источник был защищен (настолько доступный подклассами) тогда, кодируют, становится грязным: кто заменяет? Когда это - объект, тогда становится трудно, когда необходимо осуществить рефакторинг, тогда как метод имеет тенденцию делать этот шаг легче.
  • , Если Ваш метод get/методы установщика не получает и устанавливает, то опишите их как что-то еще.

Всегда думают, является ли Ваш класс действительно другой вещью или нет, и это должно помочь решить, нужно ли Вам что-либо больше.

32
ответ дан 28 November 2019 в 23:34
поделиться

Уверенный.. Почему нет?
Абстрактные базовые классы являются просто удобством содержать поведение и данные, характерные для 2 или больше классов в единственном месте для эффективности устройства хранения данных и обслуживания. Деталь реализации.
Заботятся однако, что Вы не используете абстрактный базовый класс, где необходимо использовать интерфейс. Обратитесь к Интерфейс по сравнению с Базовым классом

8
ответ дан 28 November 2019 в 23:34
поделиться

Конечно. Вся эта мысль об абстрактных классах состоит в том, что они могут содержать некоторое поведение или данные, которые Вы требуете, чтобы все подклассы содержали. Думайте о простом примере WheeledVehicle - это должно иметь numWheels членскую переменную. Вы хотите, чтобы все sub классы имели эту переменную. Помните, что абстрактные классы являются очень полезной функцией при разработке API, поскольку они могут удостовериться, что люди, которые расширяют API, не повредят его.

2
ответ дан 28 November 2019 в 23:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: