Was ist eine Komponente
Höre ich den podcast java posse, auf dieser gibt es oft Diskussionen über Komponenten (Hinweis: Komponenten sind nicht (eindeutig) Objekte). Sie beklagen die Tatsache, dass Java nicht über Komponenten und Kontrast mit .NET, die funktioniert. Komponenten scheinbar vereinfacht die Entwicklung von Anwendungen (nicht nur GUI-Anwendungen) einfacher.
Kann ich Bild von der Diskussion bestimmter Eigenschaften, die eine Komponente hat, es ist etwas zu tun mit Entkopplung (ersetzen einer Komponente für einen anderen ist nur eine Frage der Rohrleitungen). Es hat etwas zu tun mit Eigenschaften, es hat definitiv etwas zu tun mit den Ereignissen und Delegaten.
Also zu den Fragen:
./kann jemand mir erklären, was eine Komponente ist. (und warum java beans sind nicht Komponenten).
./kann mir jemand erklären, wie Sie helfen Entwicklung.
./kann mir jemand erklären, warum java nicht haben, wenn Sie so nützlich sind.
InformationsquelleAutor Scott James | 2008-10-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Software Engineering Radio hat eine episode über genau dieses Thema: http://se-radio.net/podcast/2008-02/episode-87-software-components
Die Allgemeine Idee ist, dass eine software-Komponente beschreiben kann, was seine eigenen Abhängigkeiten und Dienste in form von Metadaten. Ich weiß nicht, warum Sie haben vielleicht gehört, dass Java nicht haben Komponenten, da kann man sicherlich stellen Sie sich eine Architektur in Java, wo die Komponenten beschreiben, die sich durch Metadaten. Ich nehme an, es ist nur so, dass die Java-Plattform definition von sich selbst nicht wirklich eine Komponenten-Architektur.
Update: in der Tat, man braucht mir nicht vorstellen, wie eine Architektur, denn wie andere darauf hingewiesen, Java Beans oder Servlets könnte sicherlich berücksichtigt werden komponentenbasierte Architekturen.
PS Joe Nuxoll ist einer der Moderatoren auf der java posse (javaposse.com) ganz empfehlen, dieser podcast .. für alle interessierten in der java Entwicklung.
Als ich hörte das podcast, ich war verwirrt, wenn er sagte etwas wie: "Es ist eine Komponente Marktplatz, wo die Menschen zu schaffen-Komponenten und setzen Sie Sie in das Globale repository, wo die Leute dann schnappen... und Montage Ihrer Systeme aus ... ich glaube nicht, das diese Idee materialisiert werden, sehe ich nicht, dass das passiert." Also, was über Repositorien wie Maven Central Repository, oder NPM für Node JS?
InformationsquelleAutor Greg Hewgill
Der Begriff Komponente ist eine der am meisten mehrdeutig und überstrapaziert in OO.
Meisten Menschen würden Zustimmen, dass eine Komponente aus einer Gruppe von Klassen, die zusammenarbeiten, um eine oder mehrere Schnittstellen implementieren. Eine der Klassen übernimmt die Rolle des 'front-end', d.h. es die Schnittstelle implementiert, delegiert aber die Arbeit der anderen Klassen in der Gruppe. Wie du sagst Komponenten sollten austauschbar sein, ohne den rest des Systems zu wissen.
Ein großartiges Beispiel für eine Komponenten-basierte Architektur wurde COM. Es ist ein tolles Beispiel, weil es war so stark verwendet und starr festgelegt. Aber beachten Sie, dass die Notwendigkeit für diese Architektur basiert auf der Inflexibilität des C++ - Kompilierung und deployment-Modell.
in Java, die Sie tun können eine Menge zu einer Klasse, ohne zu brechen binäre Kompatibilität mit dem rest des Systems. Also es ist nicht so viel brauchen, um zu bauen starren, Komponenten-basierten Architekturen. Aber es hängt alles davon ab, wie definieren Sie den Begriff,, e.g jedes Projekt erstellt unter Verwendung von dependency injection zählen konnte als 'Komponente'.
InformationsquelleAutor Garth Gilmour
Obwohl es in Java Anfängen der Begriff der Komponente wurde viele Male im Zusammenhang mit Gui-Komponenten, die den Allgemeinen Sinn der Komponente in der software-engineering geht über den Begriff.
Einfach ausgedrückt, ein Komponente ist ein Stück software, die ist wiederverwendbar. Wie Steine, die wir zu kombinieren, und fügen Sie Sie ein ganzes bilden, Anwendung.
Die zentrale Erkenntnis von software-Komponenten in modernen Umgebungen ist die Metadaten, die der Komponente beschreibt die Inhalte und ermöglicht die Wiederverwendung.
1996, das JDK 1.0 war die erste verwaltete Laufzeitumgebung die Bereitstellung von Komponenten mit Metadaten. In diesem Fall sind die Komponenten
.class
Dateien mit bytecodes und Metadaten. Noch, und gemäß der Java-Spezifikation, eine.class
- Datei enthält nur eine Art definition. So stellen Sie ein Bündel von Arten als eine Komponente, die wir verwenden können ein Jar-Archiv mit mehreren.class
- Dateien.Auf der anderen Seite, in der .Net-Plattform, die die gleiche Idee von wieder verwendbaren Komponenten, einer Komponente, enthält möglicherweise mehr als eine Art definition. In diesem Fall wird eine Komponente (aka Montage.Net) ist ein
.dll
oder eine.exe
Datei.InformationsquelleAutor Miguel Gamboa
Es hängt davon ab, was du damit meinst "Komponente". Der Begriff kann bedeuten, viele verschiedene Dinge in vielen unterschiedlichen Kontexten, so kann es leicht verwirrend. Mit dieser sagte, hier ist mein Verständnis von dem Thema:
Einer Komponente unterscheidet sich von einem Objekt (obwohl die Objekte werden Häufig verwendet, zu vertreten und bauen Komponenten). Der Unterschied ist, dass ein paar Dinge:
Gibt es viele gute Beispiele für Komponenten-orientierte design, aber meine erste Wahl wäre UNIX. Die grundlegende Idee hinter UNIX ist, dass es eher eine Reihe von kleinen Programmen entwickelt, um zusammen zu arbeiten, anstatt aus mehreren mehr monolithische Programme.
InformationsquelleAutor Jason Baker
Software kommt in mehreren Gruppierungen. Hier sind die Java-Brocken.
"Komponente", "Layer", "Tier" und anderen philosophischen Gruppierungen sind -- in der Regel -- fiktive. Die VB-COM-Umgebung hatte ein Formalismus für die Komponenten. Jeder andere behandelt Sie nur als Ideen.
Beans sind Klassen. Kann in einer Klasse eine Komponente sein? Vielleicht. Eine Komponente ist in der Regel eine Reihe von Klassen. Manchmal nur zwei - eine formale Schnittstelle und eine Implementierung.
Komponenten helfen, Sie konzentrieren sich auf eine logische Gruppierung von Klassen, Paketen, Gruppierungen, etc.
Da eine Komponente ist fiktiv, jede Sprache mehr oder weniger hat. Es gibt einige Sprache, Formalismen für die Komponenten. Sie sind nicht wirklich nötig. Es ist eine Idee oder ein Prinzip, das Sie verwenden, um die Struktur Ihres Denkens.
Können Sie, mit etwas Sorgfalt, definieren einen Ansatz, der auf "Komponenten" mit einer Schnittstelle und Metadaten und zahlreiche andere Funktionen.
InformationsquelleAutor S.Lott
Weiß ich nicht .NET-Komponenten, insbesondere aber aus der Java-POV, ich würde sagen, dass eine Komponente einige funktionale Einheit, sollte eine definierte Schnittstelle/usage-Prinzip. Während in Java nicht haben Komponenten wie eine Sprache, Konzept, gibt es IMHO Komponenten in Java. Technische Komponenten wären z.B.:
Funktionalen Komponenten wären z.B.:
Architektonischen Komponenten-JAR-Dateien oder OSGi-bundles.
Natürlich, es gibt immer Raum für interpretation 😉
InformationsquelleAutor Martin Klinke