2009-05-24 7 views
3

Ich weiß, es klingt wahrscheinlich sehr trivial, aber ich konnte keine Ressourcen im Internet finden.Was ist mit offenen und geschlossenen Schichtarchitekturen gemeint?

Könnten Sie mir bitte sagen, was offene und geschlossene Schichtarchitekturen sind und warum offene Schichtarchitektur anscheinend schwieriger zu warten ist? Gibt es Nachteile bei der Verwendung von geschlossenen/offenen Schichtarchitekturen?

Antwort

7

Eine geschlossene Schichtarchitektur bedeutet, dass jede gegebene Schicht (oder Schicht) nur die Dienste der nächsten unmittelbaren Schicht verwenden kann, während in einer offenen Schichtarchitektur eine Schicht die darunter liegenden Schichten (oder Schichten) verwenden kann es. Die Closed-Layer-Architektur fördert die Unabhängigkeit zwischen Schichten durch Reduzierung von Abhängigkeiten.

http://books.google.com/books?id=z5XX4gYuMs0C&pg=PT160&lpg=PT160&dq=%22closed+layer+architecture%22&source=bl&ots=-iCw2be77_&sig=zQvScA2oIud_rNJNMziZXNMSnJo&hl=en&ei=u4UZSt7MKoX2tAOW-8jaCA&sa=X&oi=book_result&ct=result&resnum=5#PPT160,M1

+0

+1 von mir, Robert. Daran habe ich nicht gedacht. – duffymo

1

Hier ist eine der frühesten Definitionen von offenen und geschlossenen Architekturen von Bob Martin:

http://www.objectmentor.com/resources/articles/ocp.pdf

Offene Architekturen per Definition ändern. Sie sind schwer zu warten, weil es schwierig ist, in die Zukunft zu blicken, wenn man die API entwickelt und alle möglichen Anforderungen antizipiert. Wenn die API jedoch konstant bleibt und Sie effektive Mechanismen zum Ändern durch Hinzufügen und nicht Umschreiben (z. B. deklarative Konfiguration, datengesteuerte Anwendungen) entwickelt haben, können offene Architekturen sehr effektiv sein.

Es ist nichts falsch mit einer geschlossenen Architektur für die Probleme, die gut bekannt und relativ statisch sind. Offen ist nicht immer notwendig. Die Wahl hat mit der Art und Geschwindigkeit der Veränderung zu tun.

Verwandte Themen