Loose coupling

loosely coupledlooser couplingloosely-coupledtightly coupleddecoupled relationshiploose coupledlooselyloosely coupled software componentsloosely-coupled eventsLow coupling
In computing and systems design a loosely coupled system is one in which each of its components has, or makes use of, little or no knowledge of the definitions of other separate components.wikipedia
96 Related Articles

Message-oriented middleware

Message Oriented Middlewareasynchronous messagingmessage queues
Loose coupling in broader distributed system design is achieved by the use of transactions, queues provided by message-oriented middleware, and interoperability standards.
They are different in that RPC- and ORB-based middleware create systems of tightly coupled components, whereas MOM-based systems allow for a looser coupling of components.

Service-oriented architecture

SOAService Oriented Architectureservice-oriented
The related buzzword service-orientation promotes loose coupling between services.

Distributed computing

distributeddistributed systemsdistributed system
Loose coupling in broader distributed system design is achieved by the use of transactions, queues provided by message-oriented middleware, and interoperability standards.
Distributed programming typically falls into one of several basic architectures: client–server, three-tier, n-tier, or peer-to-peer; or categories: loose coupling, or tight coupling.

Event-driven architecture

event-drivenevent drivenEvent Driven Architecture
Event-driven architecture also aims at promoting loose coupling.
This architectural pattern may be applied by the design and implementation of applications and systems that transmit events among loosely coupled software components and services.

Coupling (computer programming)

couplingdependenciesdependency
Subareas include the coupling of classes, interfaces, data, and services.
Low coupling often correlates with high cohesion, and vice versa.

Law of Demeter

principle of least knowledge
In its general form, the LoD is a specific case of loose coupling.

Cohesion (computer science)

cohesioncohesiveHigh Cohesion
High cohesion often correlates with loose coupling, and vice versa.

Computing

computer technologycomputing technologyapplied computing
In computing and systems design a loosely coupled system is one in which each of its components has, or makes use of, little or no knowledge of the definitions of other separate components.

Systems design

system designdesignsystems designer
In computing and systems design a loosely coupled system is one in which each of its components has, or makes use of, little or no knowledge of the definitions of other separate components.

Component-based software engineering

software componentcomponentcomponents
In computing and systems design a loosely coupled system is one in which each of its components has, or makes use of, little or no knowledge of the definitions of other separate components.

Replication (computing)

replicationdata replicationreplicated
Data replication across different systems provides loose coupling (in availability), but creates issues in maintaining consistency (data synchronization).

Data consistency

consistencyconsistent stateconsistency of the data
Data replication across different systems provides loose coupling (in availability), but creates issues in maintaining consistency (data synchronization).

Data synchronization

syncsynchronizationsynchronize
Data replication across different systems provides loose coupling (in availability), but creates issues in maintaining consistency (data synchronization).

XML

Extensible Markup LanguageXML documentXML parser
Loose coupling of interfaces can be enhanced by publishing data in a standard format (such as XML or JSON).

JSON

JavaScript Object NotationJSON SchemaECMA-404
Loose coupling of interfaces can be enhanced by publishing data in a standard format (such as XML or JSON).

Encapsulation (computer programming)

encapsulationencapsulateencapsulated
Loose coupling in computing is interpreted as encapsulation vs. non-encapsulation.

Unified Modeling Language

UMLUnified Modelling Languageinteraction diagram
This is a UML diagram illustrating an example of loose coupling between a dependent class and a set of concrete classes, which provide the required behavior:

Functional programming

functionalfunctional programming languagefunctional language
Computer programming languages having notions of either functions as the core module (see Functional programming) or functions as objects provide excellent examples of loosely coupled programming.

Continuation

continuationscalloutscontinuation-based web programming
Functional languages have patterns of Continuations, Closure, or generators.

Closure (computer programming)

closuresclosurelexical closure
Functional languages have patterns of Continuations, Closure, or generators.

Clojure

Rich HickeyClojureScriptClojure programming language
See Clojure and Lisp as examples of function programming languages.

Lisp (programming language)

LispLisp programming languageLisp 1.5
See Clojure and Lisp as examples of function programming languages.