‫Kommen Sie zurück und in diesem Vortrag werden wir unsere eigenen Delegierten erstellen, um eine Liste von Personen zu filtern, und dies
‫wird uns ein tieferes Verständnis dafür vermitteln, wie Delegierte unter der Haube arbeiten.
‫Betrachten wir also die folgende Klasse, die wir hier haben.
‫Es handelt sich also um eine sehr einfache Klassenperson mit einer Namenseigenschaft sowie einer Alterseigenschaft.
‫Nur zwei Eigenschaften hier.
‫Wir möchten also eigene Delegaten erstellen, um Personen nach dem Alter zu filtern, unsere Filterdelegaten nehmen eine Person
‫als Parameter und geben einen bool zurück, wenn die Bedingung bezüglich des Alters erfüllt ist.
‫Wie ist der Zustand genau?
‫Nun, das ist uns egal, da der Code beispielsweise zum Filtern einer Liste auf einer Webseite verwendet werden
‫könnte und sich die Filterfunktion schnell ändern kann.
‫Nun, genau das ist das Schöne an den Delegierten.
‫Was für ein Luxus.
‫Gut.
‫Lassen Sie uns also unseren Delegatentyp definieren.
‫Und deshalb werde ich einfach weitermachen und sagen, dass dies ein Delegierter vom Typ Boolean sein wird.
‫Ich nenne es Filterdelegierter und es wird eine Person benötigt.
‫Also ein Personenobjekt namens Pete.
‫Lassen Sie uns nun einfach eine kleine Liste von Personen mit Personenobjekten erstellen, hier haben
‫wir sozusagen vier Personenobjekte.
‫Eins, zwei, drei und vier.
‫Und dann fügen wir sie alle zu einer Liste hinzu.
‫Sie haben hier also unterschiedliche Namen sowie unterschiedliches Alter.
‫Nun möchten wir diese Personen tatsächlich nach ihrem Alter filtern, zum Beispiel die Erwachsenen
‫nur ab 18 Jahren oder die Minderjährigen nur ab 18 Jahren anzeigen.
‫Da Sie verschiedene Filter anwenden möchten, erstellen wir eine Methode namens "Personen anzeigen".
‫Diese Methode nimmt die Personenliste und einen Filter als Stellvertreter und filtert dann die Personenliste basierend
‫auf diesem Filter.
‫Deshalb wollen wir auch einen String namens title einführen, damit die Dinge im Rat organisierter aussehen.
‫Lassen Sie mich hier zunächst den Header meiner Methode einrichten.
‫Wir haben hier also die Methode display people und benötigen eine Zeichenfolge, die Liste der Personen und den
‫Filterdelegaten, den ich filter nenne.
‫Nun, was will ich hier drin machen?
‫Nun, zunächst schreibe ich nur den Titel.
‫Und dann gehe ich alle Leute durch, die hier auf meiner persönlichen Liste stehen.
‫Und ich werde prüfen, ob der Filter bei der Person funktioniert, an der wir vorbeigekommen sind.
‫Hier sagen wir also nur den Namen der Person sowie das Alter der Person.
‫Und jetzt können wir einfach ein paar Methoden definieren, die wir als Filter verwenden werden.
‫OK, also einer für die Bergleute.
‫Also hier ist Bergmann.
‫Also nehmen wir die Person auf und überprüfen ihr Alter mit 18 Jahren.
‫Und wenn es niedriger ist, wissen wir, dass wir zurückkehren müssen.
‫Wahr.
‫Das bedeutet, dass die Person ein Bergmann ist, andernfalls geben wir false zurück.
‫OK, das wird also der eine Filter sein.
‫Dann erstellen wir einen weiteren Filter für Erwachsene wie Seife und jetzt einen weiteren Filter für Senioren,
‫sagen wir Menschen über 65 Jahren.
‫Also, jetzt die Hauptmethode, rufen wir ein paar Mal die Methode display people auf, die wir gerade erstellt
‫haben, diese hier.
‫Kommen wir also zu unserer Hauptmethode.
‫Und hier zeige ich die Leute an und hier gebe ich nur den Titel ein.
‫Ich sage nur Kinder, zum Beispiel gebe ich die Personenliste sowie meinen Filter weiter.
‫Also hier ist mein Minor-Filter und ich nenne es so Minor.
‫Und jetzt schauen wir es uns an.
‫Lass uns das laufen lassen und sehen, ob es unsere Kinder zeigt und nur diesen Ort, Walter, der 12 Jahre alt ist.
‫OK, der Filter hat funktioniert.
‫Sie sehen, wir haben eine Methode übergeben, bei der wir keine Parameter an diese Methode übergeben mussten, da wir sie
‫an der Position eines Delegaten übergeben haben, damit er nur Delegaten filtern kann.
‫Lassen Sie mich ein wenig nach außen scrollen, damit Sie sehen können, dass es ein wenig besser ist.
‫Hier müssen wir also Delegaten übergeben und filtern, was bedeutet, dass wir eine Methode übergeben können,
‫die nur der Beschreibung der Filterdelegaten folgt, was bedeutet, dass sie nur einen booleschen Wert übergeben muss und einen Parameter
‫vom Typ person haben muss.
‫Und genau das tun unsere Methodenfilter, wie ich sie hier genannt habe.
‫Sie geben einen booleschen Wert zurück und benötigen Person P. Wenn also Minor nicht der Struktur folgt, würde dies nicht
‫funktionieren.
‫Wenn ich das also loswerden und hier zum Beispiel true zurückgeben würde, dann würde das nicht funktionieren.
‫Sie sehen hier, Mörner kann Methodengruppen gut in ein Programm umwandeln, das Delegaten filtert, damit es
‫nicht den Anweisungen unserer Delegaten folgt.
‫In Ordnung, also machen wir jetzt dasselbe mit unseren anderen Filtertypen.
‫Also zuerst mit Erwachsenen und dann mit Senioren, also schauen wir uns das an.
‫Wir sehen Kinder, Walter, Erwachsene, Aiden und Anatoliy, und dann sitzen nur noch die Senioren und er ist neunundsechzig Jahre alt.
‫Das war's also eine kleine Einführung für die Delegierten.
‫Aber Sie werden vielleicht ein nerviges Muster bemerken, das wir hier haben, und wir werden es in der
‫nächsten Vorlesung beseitigen, nämlich das anonyme Methodenmuster.
‫Also Segou da.