Признак хорошего тона — не делать ничего в конструкторе кроме того, что необходимо. А все, что необходимо, — это проверять предоставленные аргументы, а затем присваивать их в качестве значения для свойств сервиса.
Объект называется изменяемым, когда значение свойства объекта может меняться в течение всего времени существования объекта. Если свойства объекта не могут меняться после инициализации, то объект считается неизменяемым.
Это подразумевает, что вы имеете представление о том, как создать класс, инстанцировать его, расширить, обозначить как abstract, задать метод, вызвать его, задать параметры и их типы, задать возвращаемые типы, задать свойства и их типы и т.д.
При проектировании метода всегда используйте следующий шаблон.
Листинг 5.1. Шаблон для создания методов
[scope] function methodName(type name, ...): void|[return-type]
{
[preconditions checks]
[failure scenarios]
[happy path]
[postcondition checks]
[return void|specific-return-type]
}