Задание конструктора должно принести объект в применимое состояние. Существует в основном две философских школы на этом.
Одна группа одобряет двухэтапную конструкцию. Конструктор просто приносит объект в состояние спящего, в котором он отказывается делать любую работу. Существует дополнительная функция, которая делает фактическую инициализацию.
я никогда не понимал обоснование позади этого подхода. Я нахожусь твердо в группе, которая поддерживает одноэтапную конструкцию, где объект полностью инициализируется и применим после конструкции.
Одноэтапные конструкторы должны бросить, если им не удается полностью инициализировать объект. Если объект не может быть инициализирован, нельзя позволить существовать, таким образом, конструктор должен бросить.
Для MySQL (а также могут быть другие базы данных):
SELECT * FROM table WHERE "dog" RLIKE(`Column 1`)