Я всегда использую вариант 1.
Чтобы не страдало быстродействие, конструкторы должны быть максимально лёгкими.
Возможно, вы и получите +0.01 секунду и +2МБ памяти, но это не должно вас беспокоить, ведь вы получаете понятный, гибкий и легко тестируемый код.