中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

神碼ai智能寫作網(wǎng)站百度怎么發(fā)帖做推廣

神碼ai智能寫作網(wǎng)站,百度怎么發(fā)帖做推廣,萬能瀏覽器官方免費版,做跨境電商的血淚教訓文章目錄 現(xiàn)實實例反例優(yōu)化異步職責鏈 職責鏈模式在 C# 中是常見的,他的定義是:使多個對象都有機會處理請求,從而避免發(fā)送者和請求者之間的耦合關系,將對象連成一條鏈并傳遞該請求,直到有一個對象處理它為止 現(xiàn)實實例…

文章目錄

    • 現(xiàn)實實例
    • 反例
    • 優(yōu)化
    • 異步職責鏈

職責鏈模式在 C# 中是常見的,他的定義是:使多個對象都有機會處理請求,從而避免發(fā)送者和請求者之間的耦合關系,將對象連成一條鏈并傳遞該請求,直到有一個對象處理它為止

現(xiàn)實實例

上公交車要把硬幣遞給后排的售票員(現(xiàn)在應該不常見了)運氣好第一個人就是售票員,負責要一直傳遞直到找到售票員

請求發(fā)送者只知道鏈中的第一個節(jié)點弱化了發(fā)送者和接受者之間的強聯(lián)系,如果不使用職責鏈模式,我們只能知道誰是售票員,才能把硬幣給他

反例

假設你正在開發(fā)一個在線購物網(wǎng)站,其中有一個訂單處理系統(tǒng)。在該系統(tǒng)中,訂單需要經(jīng)過一系列的驗證和處理步驟,包括庫存檢查、支付驗證、優(yōu)惠券驗證和物流處理

如果是一個程序員新手他有可能實現(xiàn)這樣的代碼,每個步驟都硬編碼在里面,難以擴展和優(yōu)化:

public class OrderProcessor
{public void ProcessOrder(Order order){// 庫存檢查bool stockAvailable = CheckStock(order);if (!stockAvailable){Console.WriteLine("庫存不足");return;}// 支付驗證bool paymentValidated = ValidatePayment(order);if (!paymentValidated){Console.WriteLine("支付驗證失敗");return;}// 優(yōu)惠券驗證bool couponValidated = ValidateCoupon(order);if (!couponValidated){Console.WriteLine("優(yōu)惠券驗證失敗");return;}// 物流處理ProcessShipping(order);}private bool CheckStock(Order order){// 檢查庫存邏輯// ...}private bool ValidatePayment(Order order){// 支付驗證邏輯// ...}private bool ValidateCoupon(Order order){// 優(yōu)惠券驗證邏輯// ...}private void ProcessShipping(Order order){// 物流處理邏輯// ...}
}public class Order
{// 訂單數(shù)據(jù)// ...
}

優(yōu)化

這是使用職責鏈模式優(yōu)化的代碼,把請求解耦分給不同的 Handler 執(zhí)行,并通過設置 Next Handler 找到下一個職責任務,這就拆分了不同的執(zhí)行節(jié)點,變得可擴展了

public abstract class OrderHandler
{protected OrderHandler NextHandler;public void SetNextHandler(OrderHandler handler){NextHandler = handler;}public abstract void ProcessOrder(Order order);
}public class StockCheckHandler : OrderHandler
{public override void ProcessOrder(Order order){bool stockAvailable = CheckStock(order);if (!stockAvailable){Console.WriteLine("庫存不足");return;}if (NextHandler != null){NextHandler.ProcessOrder(order);}}private bool CheckStock(Order order){// 檢查庫存邏輯// ...}
}public class PaymentValidationHandler : OrderHandler
{public override void ProcessOrder(Order order){bool paymentValidated = ValidatePayment(order);if (!paymentValidated){Console.WriteLine("支付驗證失敗");return;}if (NextHandler != null){NextHandler.ProcessOrder(order);}}private bool ValidatePayment(Order order){// 支付驗證邏輯// ...}
}public class CouponValidationHandler : OrderHandler
{public override void ProcessOrder(Order order){bool couponValidated = ValidateCoupon(order);if (!couponValidated){Console.WriteLine("優(yōu)惠券驗證失敗");return;}if (NextHandler != null){NextHandler.ProcessOrder(order);}}private bool ValidateCoupon(Order order){// 優(yōu)惠券驗證邏輯// ...}
}public class ShippingHandler : OrderHandler
{public override void ProcessOrder(Order order){// 物流處理邏輯// ...}
}// 在客戶端代碼中構建職責鏈
public class Client
{public void Main(){OrderHandler stockCheckHandler = new StockCheckHandler();OrderHandler paymentValidationHandler = new PaymentValidationHandler();OrderHandler couponValidationHandler = new CouponValidationHandler();OrderHandler shippingHandler = new ShippingHandler();stockCheckHandler.SetNextHandler(paymentValidationHandler);paymentValidationHandler.SetNextHandler(couponValidationHandler);couponValidationHandler.SetNextHandler(shippingHandler);OrderProcessor orderProcessor = new OrderProcessor(stockCheckHandler);Order order = new Order();orderProcessor.ProcessOrder(order);}
}public class OrderProcessor
{private OrderHandler _orderHandler;public OrderProcessor(OrderHandler orderHandler){_orderHandler = orderHandler;}public void ProcessOrder(Order order){_orderHandler.ProcessOrder(order);}
}public class Order
{// 訂單數(shù)據(jù)// ...
}

異步職責鏈

每個具體的處理器類都可以異步執(zhí)行相應的任務,并將結(jié)果傳遞給下一個處理器。通過使用異步職責鏈模式,將注冊過程的不同步驟解耦并異步處理,提高性能響應速度

public abstract class RegistrationHandler
{protected RegistrationHandler NextHandler;public void SetNextHandler(RegistrationHandler handler){NextHandler = handler;}public abstract Task<bool> ProcessAsync(RegistrationRequest request);
}public class UsernameValidationHandler : RegistrationHandler
{public override async Task<bool> ProcessAsync(RegistrationRequest request){// 驗證用戶名是否有效await Task.Delay(1000); // 模擬異步操作bool isValid = !string.IsNullOrEmpty(request.Username);Console.WriteLine("Username validation completed");// 將結(jié)果傳遞給下一個處理器if (NextHandler != null){return await NextHandler.ProcessAsync(request) && isValid;}return isValid;}
}public class EmailValidationHandler : RegistrationHandler
{public override async Task<bool> ProcessAsync(RegistrationRequest request){// 驗證電子郵件是否有效await Task.Delay(1000); // 模擬異步操作bool isValid = !string.IsNullOrEmpty(request.Email);Console.WriteLine("Email validation completed");// 將結(jié)果傳遞給下一個處理器if (NextHandler != null){return await NextHandler.ProcessAsync(request) && isValid;}return isValid;}
}public class AccountCreationHandler : RegistrationHandler
{public override async Task<bool> ProcessAsync(RegistrationRequest request){// 創(chuàng)建用戶賬戶await Task.Delay(1000); // 模擬異步操作bool isSuccess = true; // 假設賬戶創(chuàng)建成功Console.WriteLine("Account creation completed");// 將結(jié)果傳遞給下一個處理器if (NextHandler != null){return await NextHandler.ProcessAsync(request) && isSuccess;}return isSuccess;}
}
http://www.risenshineclean.com/news/28671.html

相關文章:

  • 什么樣的網(wǎng)站需要icp經(jīng)營性備案產(chǎn)品市場營銷策劃書
  • 自己做網(wǎng)站需要買什么手機怎么建自己的網(wǎng)站
  • 企業(yè)網(wǎng)站建設定制南寧求介紹seo軟件
  • 做網(wǎng)站關鍵詞網(wǎng)絡營銷的效果是什么
  • 做網(wǎng)站的注意什么國內(nèi)最新消息新聞
  • 蚌埠哪里做網(wǎng)站站長權重
  • 南寧中小企業(yè)網(wǎng)站制作許昌seo公司
  • 管理網(wǎng)站開發(fā)教程semseo是什么意思
  • 百度網(wǎng)頁版在線使用網(wǎng)站整站優(yōu)化公司
  • 淘寶客怎么建網(wǎng)站網(wǎng)站后臺管理系統(tǒng)
  • 廣西城鄉(xiāng)和住房建設廳網(wǎng)站黃頁推廣
  • 網(wǎng)站主機和空間360搜索引擎地址
  • 洛陽網(wǎng)站建設首選洛陽銘信科技佛山seo按效果付費
  • 用帝國cms做網(wǎng)站2022年新聞摘抄十條
  • 加工鋼球網(wǎng)架公司西安seo教程
  • wordpress站點logo設置河北疫情最新情況
  • 建設門戶網(wǎng)站的申請網(wǎng)站推廣是做什么的
  • 直播教育網(wǎng)站建設注冊網(wǎng)站平臺要多少錢
  • 什么網(wǎng)站可以做投票愛站查詢工具
  • 付費推廣網(wǎng)站網(wǎng)絡營銷論文題目
  • 建設銀行曲江支行網(wǎng)站優(yōu)化分析
  • 沒備案的網(wǎng)站怎么做淘客做百度推廣員賺錢嗎
  • 服裝網(wǎng)站建設進度及實施過程百度營銷app
  • 怎么做網(wǎng)站管理系統(tǒng)寧波網(wǎng)站推廣方案
  • 撫州做網(wǎng)站的公司網(wǎng)站推廣系統(tǒng)方案
  • 寶安網(wǎng)站制作網(wǎng)站建設太原網(wǎng)站制作優(yōu)化seo公司
  • 怎么在網(wǎng)站上做簽到建設網(wǎng)站制作公司
  • 河南建設教育中心網(wǎng)站免費域名空間申請網(wǎng)址
  • 個人網(wǎng)站實例深圳優(yōu)化公司義高粱seo
  • 杭州做網(wǎng)站公司怎么制作網(wǎng)頁鏈接