Sie beziehen sich auf CDI (Context Dependency Injection) AKA IoC (Inversion of Control). Java JSF und Spring Framework sind einige Beispiele. ASP.NET MVC verfügt über Plugins wie Unity. Javascript beginnt, Strukturen mithilfe von Bibliotheken wie RequireJS zu organisieren, deren Injektionsverhalten in vielen modernen JS-Frameworks zu beobachten ist. Dies dient zur Verkabelung lokaler und entfernter Anwendungen.
Für die lose Kopplung zwischen Netzwerken verwenden Unternehmen gerne Webdienste mit SOAP, REST, AJAX oder regulären Remote-Methodenaufrufen mit RPC. In Java können Sie JAX-WS oder .NET WCF verwenden, um verteilte Dienste zu erstellen. Dann ordnen Sie sie als Client in einem Servicebus oder "Datenfluss" aus einer beliebigen Sprache oder Plattform an. Ruby, Python, Scala, Java, C #, ... alles.
Durch die lose Kopplung können Sie Probleme aufteilen und überwinden, und Dienste sind häufig der Einstiegspunkt in eine Datenbank zum Abrufen von Daten. Wenn wir die Leiter hinaufsteigen, haben wir das Biest namens Message Queue. Dieser Weg führt zu Rahmenbedingungen für Unternehmen und Infrastrukturen.
Wenn Ihr Projekt jedoch auf keinem Netzwerk besteht, gibt es Sprachen wie Scala, Akka, NodeJS usw., die für einen hohen Datenfluss innerhalb einer einzelnen Anwendung ausgelegt sind. Sie arbeiten auch mit einigen oder allen der zuvor genannten Technologien für komplexe Projekte. Scala kann beispielsweise mit JAX-RS REST-Diensten zum Abrufen von "globalen Daten" aus einer Datenquelle verwendet werden und verfügt über Spring für die interne IoC-Verkabelung. Es gibt auch viele Business Execution- oder Workflow-Frameworks in JBoss-, .NET- und GUI-Tools wie MuleESB. In der Entwicklung können Sie mit Eclipse und Netbeans Dienste in einen visuellen Flussdiagrammbildschirm ziehen und dort ablegen.
Schließlich hat Java noch Singleton-Beans. Verwenden Sie zum Anpassen Ihrer Methoden zur Laufzeit Proxy- oder Reflection-Frameworks. Aber ehrlich gesagt ist das so 1999.
Wenn Sie so viele Anrufe tätigen, um einem Benutzer eine Nachricht basierend auf seiner Zeitzone zu senden, gibt es meiner Meinung nach wahrscheinlich einen zweistufigen Weg, um den gleichen Effekt zu erzielen, den der Benutzer sieht. Aber ja, CDI-Frameworks werden von vorhandenen Sprachen wie ein Mantel getragen, der ihnen alle von Ihnen erwähnten flexiblen Kräfte verleiht. Ich nenne es gerne das Unterbewusstsein meines Programms und kümmere mich nahtlos um schmutzige Arbeit.