A dependency is something a class needs to work.
Explicit Inspector dependency:
[SerializeField]
private Weapon weapon;
Manual initialization:
public void Initialize(Weapon weapon)
{
this.weapon = weapon;
}
Explicit dependencies are usually easier to understand than repeatedly searching the whole scene with GameObject.Find or type searches.