Το RulesEngine είναι ένα πακέτο βιβλιοθήκης/NuGet που χρησιμοποιείται για την αφαίρεση επιχειρηματικής λογικής/κανόνων/πολιτικών από το σύστημα. Αυτό μπορεί να λειτουργήσει με πολύ απλό τρόπο, επιτρέποντάς σας να τοποθετήσετε κανόνες στο χώρο αποθήκευσης εκτός της βασικής λογικής του συστήματος, διασφαλίζοντας ότι τυχόν αλλαγές στους κανόνες δεν επηρεάζουν το βασικό σύστημα.
Ισχύοντα σενάρια:
- Ο αριθμός των τύπων εισόδου και εξόδου είναι σχετικά σταθερός, αλλά η λογική εκτέλεσης αλλάζει συχνά.
- Οι συνθήκες διακόπτη αλλάζουν συχνά και οι σύνθετες δηλώσεις διακόπτη αντικαθίστανται.
- επιχειρηματική λογική με πολλαπλούς όρους ή κανόνες που θα αλλάξουν.
- Σενάρια όπου η ελευθερία του κανόνα δεν απαιτεί ιδιαίτερα υψηλούς βαθμούς ελευθερίας. (Σε αυτήν την περίπτωση, συνιστάται μια μηχανή δέσμης ενεργειών)
Οι κανόνες του RulesEngine αποθηκεύονται σε JSON και οι κανόνες (Κανόνες) εκφράζονται σε εκφράσεις λάμδα.
Διεύθυνση GitHub:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Διεύθυνση εγγράφου:Η σύνδεση με υπερσύνδεσμο είναι ορατή.(Προσωπικά πιστεύω ότι η τεκμηρίωση είναι λίγο ασαφής και κάποια χρήση δεν εξηγείται πολύ ξεκάθαρα)
Αρχικά, δημιουργήστε ένα νέο έργο κονσόλας .NET Core 3.1 και χρησιμοποιήστε την εντολή nuget για να εγκαταστήσετε το πακέτο, ως εξής:
Δημιουργήστε ένα νέο αρχείο κανόνα :Rules.json ρυθμισμένο για αντιγραφή στον κατάλογο εξόδου.
Η διαμόρφωση έχει ως εξής:
Δοκιμάστε να εκτελέσετε το πρόγραμμα και η έξοδος είναι η εξής:
Η ροή εργασίας customTest θα καλέσει τη συνάρτηση C# για να επικυρώσει τους κανόνες, σημειώστε ότι κατά τη δημιουργία του αντικειμένου RulesEngine, πρέπει να προσθέσουμε ReSettings για να εκτελέσουμε κανονικά τη μέθοδο C#.
Μεταξύ αυτών,Τα σύνολα επικύρωσης είναι πιο αφηρημένα στην κατανόηση, θα χρησιμοποιήσει localParams, η λέξη-κλειδί της τοπικής μεταβλητής είναι localParams, η οποία μπορεί απλά να γίνει κατανοητή ως var name = έκφραση
Ο πλήρης κώδικας έχει ως εξής:
Λήψη πηγαίου κώδικα:
Τουρίστες, αν θέλετε να δείτε το κρυφό περιεχόμενο αυτής της ανάρτησης, παρακαλώ Απάντηση
|