Masz na myśli CDI (wstrzykiwanie zależności kontekstowej) AKA IoC (inwersja kontroli). Java JSF i Spring Framework to tylko niektóre przykłady. ASP.NET MVC ma wtyczki takie jak Unity. JavaScript zaczyna organizować struktury przy użyciu bibliotek takich jak RequireJS, które mają zachowanie wstrzykiwania widoczne w wielu współczesnych frameworkach JS. To jest do okablowania lokalnych i zdalnych aplikacji.
W przypadku luźnego łączenia w sieciach firmy lubią korzystać z usług sieci Web przy użyciu SOAP, REST, AJAX lub zwykłego zdalnego wywoływania metod za pomocą RPC. W Javie możesz używać JAX-WS lub .NET WCF do budowania usług rozproszonych. Następnie ustawiasz je w szynie usługowej lub „przepływie danych” z dowolnego języka lub platformy jako klienta. Ruby, Python, Scala, Java, C #, ... cokolwiek.
Luźne sprzężenie umożliwia dzielenie i rozwiązywanie problemów, a usługi są często punktem wejścia do bazy danych do pobierania danych. Po drabinie mamy bestię o nazwie Kolejka wiadomości. Ta droga prowadzi do ram typu korporacyjnego i infrastrukturalnego.
Jeśli jednak Twój projekt nie wymaga sieci, istnieją takie języki, jak Scala, Akka, NodeJS itp., Które są przeznaczone do wysokiego przepływu danych w ramach jednej aplikacji. Współpracują również z niektórymi lub wszystkimi wcześniej wspomnianymi technologiami w przypadku złożonych projektów. Na przykład, Scala może być używana z usługami REST JAX-RS do pobierania rodzaju „globalnych danych” ze źródła danych i mieć sprężynę do wewnętrznego okablowania IoC. W narzędziach JBoss, .NET i GUI, takich jak MuleESB, dostępnych jest także wiele środowisk do wykonywania zadań biznesowych lub przepływu pracy. W fazie projektowania Eclipse i Netbeans umożliwiają przeciąganie i upuszczanie usług na ekranie wizualnym.
Wreszcie Java wciąż ma fasolę Singleton. Do dostosowywania metod w czasie wykonywania używaj ram proxy lub ramek do refleksji. Ale szczerze mówiąc, to jest rok 1999.
Jeśli wykonujesz tyle połączeń, aby wysłać użytkownikowi wiadomość na podstawie jego strefy czasowej, moim zdaniem istnieje prawdopodobnie 2-etapowy sposób na osiągnięcie tego samego efektu, który widzi użytkownik. Ale tak, ramy CDI są noszone przez istniejące języki, takie jak płaszcz, który daje im wszystkie elastyczne moce, o których wspomniałeś. Lubię to nazwać podświadomością mojego programu, płynnie zajmując się brudną pracą.