I frequently use that pattern. For example, something like this:
a := Start() if thingEnabled { thing := connectToThing() defer thing.Close() a.SetThing(thing) } a.Run(ctx)