Вопросы с тегом «java»

45
Образец Строителя: Когда терпеть неудачу?

При реализации паттерна «Строитель» я часто путаюсь с тем, когда строить не удается, и мне даже удается каждые несколько дней занимать разные позиции по этому вопросу. Сначала несколько объяснений: Под ранним сбоем я подразумеваю, что создание объекта должно завершиться неудачей, как только будет...

45
Насколько необходимо следовать методам защитного программирования для кода, который никогда не станет общедоступным?

Я пишу Java-реализацию карточной игры, поэтому я создал специальный тип Collection, который я называю Zone. Все методы модификации Java Collection не поддерживаются, но в Zone API есть метод move(Zone, Card), который перемещает карту из заданной зоны в себя (выполняется с помощью методов, закрытых...

44
Почему разработчики на C # открывают новые скобки? [закрыто]

Я провел большую часть последних нескольких лет, работая в основном с C # и SQL. Каждый программист, с которым я работал за это время, имел обыкновение помещать открывающую скобку функции или оператора управления потоком в новую строку. Так ... public void MyFunction(string myArgument) { //do stuff...

44
Чистая архитектура дяди Боба - класс сущности / модели для каждого слоя?

ЗАДНИЙ ПЛАН : Я пытаюсь использовать чистую архитектуру дяди Боба в моем приложении для Android. Я изучил много проектов с открытым исходным кодом, которые пытаются показать правильный способ сделать это, и я нашел интересную реализацию, основанную на RxAndroid. Что я заметил В каждом слое...

44
Почему метод финализации включен в Java?

Согласно этому посту , мы никогда не должны полагаться на вызываемый метод finalize. Так почему же Java вообще включила его в язык программирования? Кажется ужасным решение включить в любой язык программирования функцию, которая может быть...

44
Почему Java не делает вывод типов?

Я всегда удивлялся, почему Java не делает вывод типов, учитывая, что язык такой, какой он есть, и его виртуальная машина очень зрелая. Google Go - это пример языка с превосходным выводом типов, который уменьшает количество набираемых текстов. Есть ли какая-то особая причина того, что эта функция не...

43
Есть ли причина использовать классы «старых данных»?

В унаследованном коде я иногда вижу классы, которые являются ничем иным, как обертками для данных. что-то типа: class Bottle { int height; int diameter; Cap capType; getters/setters, maybe a constructor } Мое понимание ОО состоит в том, что классы являются структурами для данных и методами работы с...

42
Программирование для будущего использования интерфейсов

Рядом со мной сидит коллега, который разработал такой интерфейс: public interface IEventGetter { public List<FooType> getFooList(String fooName, Date start, Date end) throws Exception; .... } Проблема в том, что сейчас мы не используем этот «конечный» параметр где-либо в нашем коде, он просто...

42
Возможно ли функциональное программирование в Java? [закрыто]

Я просматривал книжный магазин Amazon.com и наткнулся на книгу «Функциональное программирование для Java-разработчиков» . Я знаком с некоторыми базовыми функциями программирования и программирую на Java уже 3 года. Я хотел бы знать, возможно ли даже функциональное программирование в...

41
Производительность Scala по сравнению с Java

Прежде всего, я хотел бы прояснить, что это не вопрос «язык против языка», чтобы определить, что лучше. Я давно использую Java и намерен продолжать его использовать. Параллельно с этим я в настоящее время изучаю Scala с большим интересом: кроме незначительных вещей, которые требуют некоторого...

41
Что имел в виду Рич Хики, когда сказал: «Вся эта специфика [интерфейсов / классов / типов] убивает ваше повторное использование!»

В 29 -минутном выступлении Рич Хики, посвященном размышлениям на конференции Goto « Значение ценностей », он рассказывает о накладных расходах такого языка, как Java, и делает следующее заявление: «Все эти интерфейсы убивают ваше повторное использование». Что он имеет в виду? Это правда? В поисках...

41
Нужно ли добавлять регистр по умолчанию при использовании коммутаторов?

Во время недавнего обзора кода меня попросили поместить defaultдела во все файлы, где бы ни использовался switchблок, даже если нечего делать default. Это означает, что я должен положить defaultдело и ничего не писать в нем. Это правильная вещь? Какой цели это будет...

41
Почему java.util.ArrayList позволяет добавлять нуль?

Интересно, почему java.util.ArrayListпозволяет добавить null. Есть ли какой-либо случай, когда я хотел бы добавить nullк ArrayList? Я задаю этот вопрос , потому что в проекте мы имели ошибку , когда некоторый код добавлял nullк , ArrayListи это было трудно определить , где ошибка была. Очевидно,...

40
Это плохая практика иметь интерфейс для определения констант?

Я пишу набор тестовых классов junit на Java. Есть несколько констант, например, строки, которые мне понадобятся в разных тестовых классах. Я думаю об интерфейсе, который определяет их, и каждый тестовый класс будет реализовывать его. Я вижу здесь следующие преимущества: легкий доступ к константам:...

40
Почему избегать наследования Java «расширяет»

Джейм Гослинг сказал «Вы должны по возможности избегать наследования реализации». и вместо этого используйте наследование интерфейса. Но почему? Как мы можем избежать наследования структуры объекта, используя ключевое слово «extends», и в то же время сделать наш код «Object Oriented»? Может ли...

40
Является ли лямбда-выражение чем-то большим, чем анонимный внутренний класс с одним методом?

В Java 8 появилась новая реклама с долгожданными лямбда-выражениями; каждые 3 дня появляется новая статья о том, как они круты. Насколько я понял, лямбда-выражение - это не что иное, как анонимный внутренний класс с одним методом (по крайней мере, на уровне байт-кода). Помимо этого он имеет еще...

40
Почему логический оператор NOT в языках стиля C «!», А не «~~»?

Для бинарных операторов у нас есть как побитовые, так и логические операторы: & bitwise AND | bitwise OR && logical AND || logical OR NOT (унарный оператор) ведет себя по-другому, хотя. Существует ~ для побитового и! для логики. Я признаю, что NOT - это унарная операция, в отличие от...

40
Почему я должен объявлять класс как абстрактный класс?

Я знаю синтаксис, правила, применяемые к абстрактному классу, и я хочу знать использование абстрактного класса Абстрактный класс не может быть создан напрямую, но может быть расширен другим классом В чем преимущество этого? Чем он отличается от интерфейса? Я знаю, что один класс может реализовывать...

40
Могут ли современные языки OO конкурировать с производительностью хранилища массивов в C ++?

Я только что заметил, что каждый современный язык программирования ОО, с которым я, по крайней мере, немного знаком (в основном это просто Java, C # и D), допускает ковариантные массивы. То есть массив строк - это массив объектов: Object[] arr = new String[2]; // Java, C# and D allow this...