Design pattern

FantastischMan

Aktives Mitglied
Welche Design Patterns sind in Architektur muster pipes und filter enthalten?
Irgendwie wenn ich nachdenke wie die Struktur aufgebaut ist, denke ich an das State pattern also das Zustand pattern?

bitte nur antworten wenn ihr euch wirklich sicher seid?
 

abc66

Top Contributor
Ich versteh die Frage nicht ganz, "PipesAndFiltersArchitecture" sind Design Pattern.
Beispiele: Compiler, Datenkompression, Kodierungen MPEG, MP3, usw.
1 2
 

FantastischMan

Aktives Mitglied
ne es gibt einen unterscheid zwischen design und architecture pattern.
zbs mvs ist ein architecture pa
Doch, wenn man Design Pattern als die typischen Gang of Four-Pattern versteht, und Pipes and Filters als Architektur-Pattern, kann man erstere in (oder „für“) letzterem finden ;)

@FantastischMan, welche Design-Pattern sind die denn so bekannt?
fate pattern, state pattern composite pattern. Ich glaube dass das eine kombination aus state und composite ist aber unsicher. ich kenne eig alle grundlegende.
Verhaltensmuster, Strukturmuster und Erzeugungsmuster

MVC zbs ist ja composite strategy und observer
 
K

kneitzel

Gast
Also man kann durchaus ein Architekturmuster wählen, aber wenn es um die genaue Modellierung geht, dann sehe ich keinen Grund, wieso es da eine Einschränkung geben sollte. Das sind doch zwei Paar Schuhe die unterschiedliche Bereiche ausdrücken. Was ich wie bauen kann für einen Filter ist da doch egal. Da kann doch prinzipiell jedes Entwurfsmuster zum Einsatz kommen. Ich kann Builder benötigen, ich kann mit dem Strategy Muster Verhalten Kapseln u.s.w.
Das ist doch wie beim Thema: Ich will hein Haus bauen - welche Materialien kann ich verwenden. Da kannst du alles verwenden - selbst Dinge die für tragende Wände nicht taugen kannst du noch für die Inneneinrichtung verwenden...

Oder sehe ich das jetzt erst einmal zu einfach und da gibt es dann doch Ausschluss-Gründe? Aber wie beim Innenausbau: wer weiß, was ich bei den Filtern oder bei der Pipe im Detail noch so brauche.

Daher muss ich gestehen: ich sehe in der Frage auch nicht wirklich einen Sinn.
 

FantastischMan

Aktives Mitglied
ne es gibt Patterns sie zusammen arbeiten und eine Architektur bilden darum geht es.
Es geht darum welche wichtige patterns interagieren um ein ähnliches Verhalten wie pipes und Filters zu bekommen.
 

mrBrown

Super-Moderator
Mitarbeiter
Also man kann durchaus ein Architekturmuster wählen, aber wenn es um die genaue Modellierung geht, dann sehe ich keinen Grund, wieso es da eine Einschränkung geben sollte. Das sind doch zwei Paar Schuhe die unterschiedliche Bereiche ausdrücken. Was ich wie bauen kann für einen Filter ist da doch egal. Da kann doch prinzipiell jedes Entwurfsmuster zum Einsatz kommen. Ich kann Builder benötigen, ich kann mit dem Strategy Muster Verhalten Kapseln u.s.w.
Für die meisten Architektur-Muster gibt es aber durchaus eine naheliegende Wahl an Design-Pattern, die man für die Umsetzung nutzt - wobei Naheliegend von "sinnvoll" bis "notwendig" reicht.

Das ist doch wie beim Thema: Ich will hein Haus bauen - welche Materialien kann ich verwenden. Da kannst du alles verwenden - selbst Dinge die für tragende Wände nicht taugen kannst du noch für die Inneneinrichtung verwenden...
Üblicherweise kommen bei Wohnhäusern aber Pattern wie Räume, Fenster, Türen zum Einsatz - wie man allerdings große Hallen oder vollkommen autarke Systeme baut, ist da eher Nebenschlich :p

Für MVC hat er ja selbst schon Design-Pattern genannt - Oberserverpatten und Strategiepattern werden üblicherweise als notwendig angehen, Observer, da View das Model beobachtet, Strategie, weil (zumindest im reinen MVC) die Controller eine Strategie für die View sind. Composite ist in den üblichen Umsetzungen auch verwendet.
 

mrBrown

Super-Moderator
Mitarbeiter
fate pattern, state pattern composite pattern. Ich glaube dass das eine kombination aus state und composite ist aber unsicher. ich kenne eig alle grundlegende.
Verhaltensmuster, Strukturmuster und Erzeugungsmuster

Beschreib doch mal, wie du State und Composite in Pipes & Filters verwendet siehst.

Und umgekehrt: welche Rollen siehst du in Pipes & Filters und welche Anforderungen siehst du an dieser gestellt. (Rollen meint dabei keinen Rollen aus irgendwelchen Pattern, sondern einfach nur "es gibt XY, und XY macht das")
 

FantastischMan

Aktives Mitglied
Im Grunde genommen kann man die ganzen pipes als zustande sehen und durch diese Filters kann man dann die zustande andern
  • > pipes = zustande
Und Composite auch da diese pipes teilweise eine Hierarchie haben.
Die Wurzel wäre dann im Grunde genommen der erste Pipe und der letzte pipe wäre demnach das Blat
 

mrBrown

Super-Moderator
Mitarbeiter
Also, du hast eine Pipe, diese hat genau eine Pipe als Kind, diese wieder genau eine Pipe als Kind?
Und irgendwie sind die gleichzeitig ein Zustand?

Aber du hast meine zweite Frage oben ignoriert ;)

welche Rollen und was ist für die relevant?
 

mrBrown

Super-Moderator
Mitarbeiter
Was meinst du mit Rollen und umgekehrt?

Was für Elemente es dabei so gibt. Wie oben schon gesagt, was gibt es, und was für Anforderungen gibt es.

Im MVC gibts zum ganz offensichtlich ein Model, welches die Domäne der Anwendung darstellt, das sollte UI-unabhängig sein. Daneben dann Pärchen aus View und Controller, wobei erstere die Implementierung des Controllers nicht kennen soll und die View muss irgendwie die Änderungen des Models mitbekommen.


Ja genau also oberste ist die Wurzel und darunter die Kinder etc
Hast schon wieder die Hälfte ignoriert...

Wo kommen da Filter drin vor und was soll da der State sein?
 

AndiE

Top Contributor
Ich würde ja mal ein konkretes Beispiel ins Spiel bringen:

In einem Naturpark gibt es eine Anzahl von Aufnahmestationen. Kommen die Tiere in deren Nähe, wird gespeichert, welches Tier, wann wo war. Aus technischen Gründen werden diese Daten auf SD-Karten gespeichert. Zur Verarbeitung werden die gespeicherten Daten aller SD-Karten zu einer großen Liste zusammengefügt.

Im Sinne der Stream-Verarbeitung von Linux könnte man nun Filter schreiben, die aus dieser Rohdatei die gewünschten Informationen herausfinden und in eine neue Datei speichern.

Bloß im Sinne des OOAD würde ich etwa so modellieren:

- Eine Aufnahme enthält Tiernummer und Uhrzeit
- Eine Station hat viele Aufnahmen.
- Der Park hat viele Stationen.
- Im Park leben viele Tiernummern

Ich finde, dass diese Modellierung nicht so wirklich passt zu "Pipes and Filters".

hat jemand mal ein besseres Beispiel? Oder sehe ich da was falsch?
 

mrBrown

Super-Moderator
Mitarbeiter
Ich finde, dass diese Modellierung nicht so wirklich passt zu "Pipes and Filters".
Generell passt natürlich nicht jedes Pattern zu jedem Problem, und die meisten Probleme kann man auf verschiedene Arten modellieren, und die meisten Domänen muss man auch für verschiedenen Dinge verschieden modellieren.

Bloß im Sinne des OOAD würde ich etwa so modellieren:

- Eine Aufnahme enthält Tiernummer und Uhrzeit
- Eine Station hat viele Aufnahmen.
- Der Park hat viele Stationen.
- Im Park leben viele Tiernummern

Ich finde, dass diese Modellierung nicht so wirklich passt zu "Pipes and Filters".
Das ist auch eine passende Modellierung - nur eine andere Ebene/Sicht, als man bei Pipes und Filters hat.

Widerspricht sich auch keineswegs, du kannst das ganze durchaus so modelliert haben, und trotzdem Pipes und Filters nutzen.

zB wenn du eine Suche umsetzen willst, ein Filter filtert nach Uhrzeit, einer nach Station, einer nach XY. Das ganze lässt sich dann beliebig kombinieren, der erste Filter bekommt einfach alle Daten, der erste Filter filtert dann eine Teilmenge, der zweite bekommt die Teilmenge und filtert noch kleiner, usw.
 

mihe7

Top Contributor
ne es gibt Patterns sie zusammen arbeiten und eine Architektur bilden darum geht es.
Eine Softwarearchitektur beschreibt die Struktur eines Systems, wobei für ein System mehrere Architekturen angegeben werden können, je nachdem welchen Abstraktionsgrad man ansetzt und welche Sichtweise man einnimmt.

So ist
Bash:
ls -lS | tail -1 | cut -f 1 -d " "
ein System, das drei Prozesse in "Pipe und Filter"-Architektur miteinander verbindet, um mir die Zugriffsrechte der kleinsten Datei im Verzeichnis anzuzeigen. Welche Entwurfsmuster innerhalb von "ls", "tail" und "cut" angewendet wurden, spielt hier keine Rolle.

Was aber, wenn man Pipes und Filter selbst umsetzen will? Die Pipe dient als Puffer zur Entkopplung von Datenlieferanten und -konsumenten. Ein sehr unmittelbarer Ansatz wäre es, den Produzenten und den Konsumenten in separaten Threads laufen zu lassen, die sich die Pipe teilen. Die Pipe könnte als Blocking Queue realisiert werden. Andererseits ließe sich aber auch das Chain-Of-Responsibility-Patterns anwenden, das innerhalb der klassischen Entwurfsmuster in Bezug auf das Verhalten dem "Pipe und Filter" wohl am nächsten kommt.
 

AndiE

Top Contributor
ich denke, dass mihe7 einen wichtigen Punkt angesprochen hat. Wenn ich eine Filter-and-Pipe Arcitektur anwenden will, dann habe ich doch als wichtigstes die Pipes als FIFO-Speicher. Und die Filter selbst lesen das Ende der einen Pipe und schreiben in den Anfang der anderen Pipe. So gedacht, würde sich MrBrown's Idee am ehesten denken lassen, dass jeder Filter die vorhandene Datenmenge reduziert. Dabei werden jedoch keine Operationen auf die Daten wie sortieren angewendet, wohl aber neben dem Filtern das Ersetzen und Einfügen von Informationen, wobei aber die Datenreihenfolge erhalten bleibt.
 

mrBrown

Super-Moderator
Mitarbeiter
Wenn ich eine Filter-and-Pipe Arcitektur anwenden will, dann habe ich doch als wichtigstes die Pipes als FIFO-Speicher.
Die müssen allerdings nichts speichern (oder puffern), die können das einfach direkt an den nächsten Filter weitergeben. Theoretisch wäre auch ein nextFilter.write(...) in einem Filter eine Pipe.

So gedacht, würde sich MrBrown's Idee am ehesten denken lassen, dass jeder Filter die vorhandene Datenmenge reduziert. Dabei werden jedoch keine Operationen auf die Daten wie sortieren angewendet, wohl aber neben dem Filtern das Ersetzen und Einfügen von Informationen, wobei aber die Datenreihenfolge erhalten bleibt.
Die können durchaus auch sortieren, sort ist z.B. in POSA ein Beispiel.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D was ist der vorteil vom Builder-design pattern? Java Basics - Anfänger-Themen 11
D Design Pattern Command Java Basics - Anfänger-Themen 3
Tarrew Proxy Design-Pattern Java Basics - Anfänger-Themen 1
S Je nach erhaltene Daten unterschiedlich reagieren (Design Pattern?) Java Basics - Anfänger-Themen 3
A Design Pattern - Welche? Java Basics - Anfänger-Themen 33
Rudolf OOP Übungen zu Design Pattern in Java Java Basics - Anfänger-Themen 6
R Welches Design pattern Java Basics - Anfänger-Themen 10
N BMI Rechner Was haltet ihr von dem Code habt ihr Verbesserungsvorschläge weil design teschnisch ist das nicht das geilste würde das gerne überarbeiten Java Basics - Anfänger-Themen 12
A Frage zum UML Design Java Basics - Anfänger-Themen 1
B Frage zu Datenbank Design - Rechnungen, Angebote... und deren Positionen Java Basics - Anfänger-Themen 4
N design time vs build time vs compile time Java Basics - Anfänger-Themen 2
H Eclipse , Design-Modus, unvollständige Darstellung Java Basics - Anfänger-Themen 0
M LookandFeel Design Java Basics - Anfänger-Themen 4
M Erste Schritte Eclipse + design view Java Basics - Anfänger-Themen 3
J Design Patterns Java Basics - Anfänger-Themen 8
D Besseres Design Frage Java Basics - Anfänger-Themen 1
N Was bedeutet "Implementierung vor dem Client verbergen" bei Design Patterns? Java Basics - Anfänger-Themen 2
J MVC- Design Frage Java Basics - Anfänger-Themen 3
C Java Klassen Design? Java Basics - Anfänger-Themen 5
OnDemand Software-Design Java Basics - Anfänger-Themen 1
B Warum haben Java Programme ein anderes Design? Java Basics - Anfänger-Themen 5
S Singleton (Design Patterns) Java Basics - Anfänger-Themen 16
K Interface als Instanzvariable = gutes Design Java Basics - Anfänger-Themen 6
S Eclipse Design-Reiter fehlt Java Basics - Anfänger-Themen 6
D Design-Tipps für neues Programm (Excel-Charts-...) Java Basics - Anfänger-Themen 3
M Button mit eigenem Design Java Basics - Anfänger-Themen 6
S Gutes Design mit statischen oder Member-Methoden Java Basics - Anfänger-Themen 53
X Externer GUI Code verwenden / (Design Ansicht) Java Basics - Anfänger-Themen 3
B OOP Frage zu Klassen Design Java Basics - Anfänger-Themen 5
Hamstinator Design und Listener in verschiedenen Klassen Java Basics - Anfänger-Themen 6
J Methoden design Java Basics - Anfänger-Themen 3
hdi Design-Problem Java Basics - Anfänger-Themen 2
hdi Kleine Design/Convention Frage zu Konstruktoren Java Basics - Anfänger-Themen 4
Q Listen - DefaultListModel trotz Design ueber GUI? Java Basics - Anfänger-Themen 10
B Java-Anwendung im Windows Design Java Basics - Anfänger-Themen 8
hdi Design-Frage: bin unzufrieden Java Basics - Anfänger-Themen 11
M code design Java Basics - Anfänger-Themen 14
M log4j design Java Basics - Anfänger-Themen 11
D Design Fragen Java Basics - Anfänger-Themen 5
M Design: Abfrage auf korrekte Eingabe Java Basics - Anfänger-Themen 4
W Design Problem Java Basics - Anfänger-Themen 7
T Wie wichtig ist Design Patterns in einer Firma? Java Basics - Anfänger-Themen 8
M Java Design Frage Java Basics - Anfänger-Themen 2
S log4j "Richtiges" Design Java Basics - Anfänger-Themen 4
D JButton - Design ändern Java Basics - Anfänger-Themen 8
S Frage zum Design der Vererbung (Kartendeck und Dupletten) Java Basics - Anfänger-Themen 12
S Design Frage Java Basics - Anfänger-Themen 5
W GoF-Pattern im Programmierer-Alltag Java Basics - Anfänger-Themen 113
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J Methoden Observer-Pattern mit Consumer und accept( ) Java Basics - Anfänger-Themen 6
Dimax Erste Schritte Pattern.matcher,die Besonderheiten. Java Basics - Anfänger-Themen 12
N Best Practice Frage zum MVC-Pattern Java Basics - Anfänger-Themen 2
J Implementierung von Observer und Singleton-Pattern Java Basics - Anfänger-Themen 9
W RegEx Matcher + Pattern und Emails Java Basics - Anfänger-Themen 8
M Schlüsselworte Unterschied: String.matches und Pattern.compile Java Basics - Anfänger-Themen 2
C Best Practice JTable in MVC Pattern Java Basics - Anfänger-Themen 7
Bregedur Methoden Matcher und Pattern bei sich wiederholenden Werten Java Basics - Anfänger-Themen 1
fLooojava MVC Pattern und Observer Pattern Java Basics - Anfänger-Themen 6
S Regex Pattern Java Basics - Anfänger-Themen 3
Z Pattern und Matcher substring zu String möglich? Java Basics - Anfänger-Themen 4
B Pattern für Email Liste Java Basics - Anfänger-Themen 3
J Builder Pattern implementieren Java Basics - Anfänger-Themen 3
M Methoden Pattern Matching Vokal Java Basics - Anfänger-Themen 2
agent47 Pattern split Java Basics - Anfänger-Themen 2
J MVC Pattern, mehrere Controller/Views/Models Java Basics - Anfänger-Themen 0
B Strategy Pattern - Rechner Java Basics - Anfänger-Themen 6
I Vertändnisfrage zu Prototype Pattern Java Basics - Anfänger-Themen 0
L Kompositum-Pattern Hilfe :O Java Basics - Anfänger-Themen 4
F eigenes Listener Pattern mit Interface Java Basics - Anfänger-Themen 1
B Pattern Matching ohne Match-Methoden Java Basics - Anfänger-Themen 11
Furtano OOP Memento Pattern | übergabe einer Kopie des Arrays Java Basics - Anfänger-Themen 0
F Erste Schritte Pattern zum Zerlegen von selbstdefinierten Dateinamen Java Basics - Anfänger-Themen 7
M MVC + Strategy Pattern Ansatz (mit Code) Java Basics - Anfänger-Themen 5
A Observer Pattern Problem Java Basics - Anfänger-Themen 15
J Interface Frage zu Interfces am Beispiel Observer Pattern Java Basics - Anfänger-Themen 8
S OOP Regex Pattern Java Basics - Anfänger-Themen 2
P Grundsatzfrage zu Decorator-Pattern Java Basics - Anfänger-Themen 6
L Pattern Matching Java Basics - Anfänger-Themen 3
L RegExp bzw Pattern in Java Java Basics - Anfänger-Themen 6
Helgon Observer Pattern - hasChanged() immer false Java Basics - Anfänger-Themen 10
R aktualisierung des View im MVC-Pattern Java Basics - Anfänger-Themen 5
M RegEx Pattern Matcher Java Basics - Anfänger-Themen 16
R Pattern bzw. Regex HTML-Code Java Basics - Anfänger-Themen 10
N Regexp Pattern & Matcher Problem Java Basics - Anfänger-Themen 4
I OOP Verständnisfrage zu Singelton Pattern Java Basics - Anfänger-Themen 21
B static und Pattern matching Java Basics - Anfänger-Themen 22
T pattern klappt nicht so Java Basics - Anfänger-Themen 6
T Decorator Pattern Java Basics - Anfänger-Themen 7
A Pattern und Matcher Java Basics - Anfänger-Themen 9
T Frage zu Pattern/Matcher Java Basics - Anfänger-Themen 6
D Pattern in Midi-Sequencer Java Basics - Anfänger-Themen 2
V Frage zu Decorator-Pattern Java Basics - Anfänger-Themen 4
S OOP Factory Pattern Java Basics - Anfänger-Themen 2
C OOP Observer Pattern Java Basics - Anfänger-Themen 2
M Regex-Pattern Java Basics - Anfänger-Themen 2
Haubitze_Broese Pattern für Links in RSS-Reader Java Basics - Anfänger-Themen 6
Raidri Pattern liefert false Java Basics - Anfänger-Themen 9
megachucky regex-Problem ( mit den Klassen Matcher / Pattern) --> XML prüfen Java Basics - Anfänger-Themen 11
O useDelimiter / Muster im Parameter (Pattern) Java Basics - Anfänger-Themen 6
S Problem mit Pattern Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben