Should I use cat or echo?

cat or echo are used to generate the text that will be written somewhere

When should I use cat?

When should I use echo?

When should I use ls?