Wann sind Prädikate geeignet und was ist das beste Muster für die Verwendung? Was sind die Vorteile von Prädikaten?Wann sind Prädikate geeignet und was ist das beste Muster für die Verwendung?
Es scheint mir wie die meisten Fälle, in denen ein Prädikat verwendet werden kann eine enge Schleife die gleiche Funktionalität erreichen würde?
Ich sehe nicht ein Wiederverwendbarkeitsargument, vorausgesetzt, Sie werden wahrscheinlich nur ein Prädikat in einer Methode richtig implementieren?
Sie sehen gut aus und fühlen sich gut an, aber abgesehen davon scheinen sie, als würden Sie sie nur einsetzen, wenn Sie einen schnellen Hack in den Sammelklassen brauchen?
UPDATE
Aber warum würden Sie die engen Schleife wieder und wieder umzuschreiben?
In meinem Kopf/code, wenn es um Sammlungen kommt ich am Ende immer mit so etwas wie
Class Person
End Class
Class PersonList
Inherits List(Of Person)
Function FindByName(Name) as Person
tight loop....
End Function
End Class
@Ani
Mit derselben Logik ich die Methode als solche
implementieren könnteClass PersonList
Inherits List(Of Person)
Function FindByName(Name) as PersonList
End Function
Function FindByAge(Age) as PersonList
End Function
Function FindBySocialSecurityNumber(SocialSecurityNumber) as PersonList
End Function
End Class
Und nennen Sie es so
Dim res as PersonList = MyList.FindByName("Max").FindByAge(25).FindBySocialSecurityNumber(1234)
und das Ergebnis zusammen mit der Menge an Code und seine Wiederverwendbarkeit ist weitgehend die gleiche, nein?
Ich streite nicht nur versuchen zu verstehen.
Warum würden Sie SQL verwenden, anstatt die Tabellen selbst in einer engen Schleife zu durchlaufen? Es sieht aus und fühlt sich gut an, aber abgesehen davon scheint es, als würden Sie es nur einsetzen, wenn Sie einen schnellen Hack in einer Datenbank benötigen. –
(In Erwiderung auf Ihr Update) - Für ein realistisches Szenario, warum nicht * implementieren * die enge Schleife? Also, warum nicht 'FindByName',' FindByAge', 'FindBySocialSecurityNumber' schreiben? Was ist, wenn der Benutzer Personen zwischen 24 und 34 Jahren suchen möchte? Kannst du jeden möglichen Filter schreiben? Was wäre, wenn die Schleifenlogik komplexer wäre? – Ani