¿Cómo ejecutar una función desde otro componente que NO es hermano del primer componente?

Estoy tratando de ejecutar una función desde otro componente (Estos 2 componentes NO son hermanos) Supongo que tendré que usar@Output y eventEmitter para lograr esto o crear unServicio y suscribirse a laObservable para compartir los mismos datos en todos los componentes (sé cómo pasar un mensaje (cadena) pero no sé cómo ejecutar una función). No estoy realmente seguro de por dónde empezar. Estoy tratando de ejecutarfunción1 DEfunción2. ¿Alguien puede ayudarme a hacer que esto funcione?Por favor proporcione un saqueador. Así es como se ve mi proyecto:

   src
   |__app(FOLDER)
      |__home(FOLDER)
      |     |
      |     |__home.component.ts 
      |                  |______function2(){
      |                          What do I need to put in here to execute function1?
      |                          }
      | 
      |__products(FOLDER) 
           |
           |__tools(FOLDER)
                  |
                  |____tools.component.ts
                                   |____function1(){
                                         alert("I'm inside function 1!!");
                                         }

Como viste tengo un archivohome.component.ts que tiene function2 y un archivotools.component.ts que tiene function1, entonces, ¿alguna idea de cómo ejecutar function1 desde function2?

Respuestas a la pregunta(4)

Su respuesta a la pregunta