Filtert EntwurfsmusterC#

Ein Treffpunkt für C#-Programmierer
Guest
 Filtert Entwurfsmuster

Post by Guest »

Ich mag die Filter in ASP.NET MVC wirklich. Sie sind brillant.
Ich würde gerne eine Art Filterentwurfsmuster für meine Geschäftslogik verwenden.
Bedenken Sie Folgendes:
var shippingFilterCost = {
"Name": "CalculateShippingCostsFilter",
"InjectedServices": "product, shoppingBasket, CalculateProductShipping",
"MainMethod": function (product, shoppingBasket,CalculateProductShipping) {
var shippingCost = CalculateProductShipping(product.weight, shoppingBasket.locationToShipTo);
product.ShippingCost = shippingCost;
return product;
}
}

var checkIfBuyerHasAVouche = {
"Name": "CheckVoucher",
"InjectedServices": "product, shoppingBasket, CheckVoucherValid,CalculateVoucher",
"EntryCondition": function (product, shoppingBasket, CheckVoucherValid, CalculateVoucher) {
var isVoucherValid = CheckVoucherValid(shoppingBasket.voucherCode);
return isVoucherValid;
// we only go to the 'MainMethod' if entryCondition returns true;
},
"MainMethod": function (product, shoppingBasket, CheckVoucherValid, CalculateVoucher) {
var voucherPrice = CalculateVoucher(shoppingBasket.voucherCode);
product.voucherPriceReduction = voucherPrice;
return product;
}
}

Wir werden also ein Basisprodukt haben, und dieses Basisprodukt durchläuft diese beiden Filter, die ihm „Informationen“ hinzufügen.
Einer Der Filter berechnet die Versandkosten und ein weiterer den Gutschein.
Vorteile:
  • Wir können leicht sehen, welche Dienstleistungen angeboten werden ' werden wo durch ihre Referenzen verwendet.
  • Wir kann problemlos verfolgen, welche Methode welche Eigenschaft verändert, da
  • Die Dienste sind nur reine Methoden, die etwas zurückgeben.
  • Alle Mutationen werden in der Hauptmethode zentralisiert
  • Wir haben auch „EntryCondition“. '-Methode können wir trennen und sehen, welche Filter ausgeführt werden und welche nicht.
Ich weiß nicht, wie ich besser erklären kann, was hier passiert. Offensichtlich ist diese Logik sehr einfach, aber wenn ich mehrere Lieferanten, Kundentypen usw. hätte, jeder mit seiner eigenen Logik, können wir sehen, wie mir diese deklarative Methode helfen kann.
Wenn ja Eine bessere Idee, wie ich das besser erklären kann, bitte bearbeiten Sie meinen Beitrag.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post