1 сервисы (лучше с глубокой вложенностью чтобы работало наследование)(редко)
2 $on + $emit/$broadcast(лично я избегаю этого. сложнее поддерживать приложение)
3 если связь компонентов родитель-ребенок то по средством bindings(для ангулара менее 1.5 это scope)(очень часто. легко поддерживать приложение)