Этот ресурс может быть полезным:
http://en.wikipedia.org/wiki/JavaBean
Я лично обнаружил, что наличие конструкторов без аргументов упрощает внедрение зависимостей. Например, в Spring IoC, хотя вы, безусловно, можете указывать аргументы конструктора, намного проще не делать этого.
Также я обнаружил, что написание модульных тестов проще по той же причине, то есть вы можете просто создать экземпляр объекта, который вы хотите, добавить свойства, необходимые для целей вашего теста, а затем протестировать. Таким образом, наличие конструктора с аргументами может потребовать от вас установки объектов с объектом, который вы не особенно заинтересованы в тестировании.
Тем не менее, предоставление конструктора без аргументов не является взаимоисключающим условием предоставления удобных конструкторов с аргументами, т. Е. Вы можете иметь оба; просто убедитесь, что у вас есть простой аргумент, соответствующий описанным выше вариантам использования.