It isn't necessary to do it like that. In Unity, you add additional monobehaviours to your component, and they can interact with other components.
So if you want to create additional behaviours to your sprite like moving it, etc, simply attach the component to the sprite and do it like that.
Normally you'd just do it in the Unity interface - create a public variable and drag a reference to it.
If you want to spawn sprites at runtime entirely from code, you should read up on resources folders and how those work in Unity - you can load SpriteCollectionData objects using Resources.Load, and then use sprite.SetSprite( collection, "name"); to assign the sprite.
Also keep in mind you can create prefabs, and load them in.