Как вы упомянули, у вас есть следующие три варианта:
Используйте геттеры / сеттеры
Как вы, возможно, знаете, get / set будет указывать состояние объекта, к которому обращаются несколько раз (обычно) в течение времени жизни объекта. Так что, если у вас есть сценарий от «CrucialMethod1» до «CrucialMethodN», использующий это состояние, то это можно использовать. Кроме того, это также поможет в разоблачении государства извне.
Использовать в качестве параметра для конструктора
Как правило, параметр конструктора будет "диктовать" состояние, в которое будет инициализирован объект. Так что если у вас есть сценарий, в котором CrucialMethod может вызываться или не вызываться, то это не будет наиболее уместным.
Использовать в качестве параметра метода
Это было бы полезно в сценарии, когда CrucialMethod действует / трансформируется (зависит) от переданных параметров. Это облегчает вызов метода без зависимости от состояния параметра.
Ваш звонок!