Best practice for modeling small objects and attaching them to a larger object?

Hey everyone!

I have a question regarding modeling small objects and attaching them to larger objects. For example, how would I go about modeling buttons for a jacket and then attaching them to the jacket? Should I model a separate object for the buttons, then use surface snapping to attach them to the jacket mesh? Or should I just model the buttons and manually place them right on top of the jacket mesh (maybe even allow them to intersect the jacket mesh, a little)?? And then after that, should I join (CTRL+J) the objects together?

Basically, I just would like to know what the typical/best practice is for attaching smaller objects on to larger objects.
Thanks in advance!

It will all depend on the quality and detail you are going for. For like the jacket button example. High detailed you could model the whole button and place it where you want on the jacket, then edit the jacket mesh to show the physical details of the button eg. Fabric indents around the button location. For something like game creation I would probably join the buttons to the mesh and not worry about the physical detail of the button being attached.