日本xxxx18视频在线观看-日本xxxx1819-日本xxxwww在线观看-日本xxx-日本xx-日本www在线视频

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

使用橋接模式在 C# 中實(shí)現(xiàn)一個(gè)消息發(fā)送系統(tǒng)

admin
2025年5月20日 20:36 本文熱度 76

前言

你了解橋接模式嗎?

橋接模式是一種結(jié)構(gòu)型設(shè)計(jì)模式,其核心思想是將抽象部分與實(shí)現(xiàn)部分分離,使得二者可以獨(dú)立變化。

這種模式特別適用于需要在多個(gè)維度上進(jìn)行擴(kuò)展或變化的場(chǎng)景。

今天我跟大家分享一個(gè)使用橋接模式在 C# 中實(shí)現(xiàn)一個(gè)消息發(fā)送系統(tǒng)的例子。

核心思想

橋接模式的核心思想是將一個(gè)大類(lèi)或一系列緊密相關(guān)的類(lèi)拆分為兩個(gè)獨(dú)立的層次——抽象部分和實(shí)現(xiàn)部分。

這樣做的好處是可以讓這兩個(gè)層次獨(dú)立地?cái)U(kuò)展,而不會(huì)互相影響。

結(jié)構(gòu)和實(shí)現(xiàn)

  1. 首先,需要定義一個(gè)接口(Implementor)來(lái)表示實(shí)現(xiàn)部分,這個(gè)接口需要定義實(shí)現(xiàn)抽象類(lèi)的方法,但不包含任何抽象類(lèi)的邏輯
  2. 其次,創(chuàng)建不同的具體的實(shí)現(xiàn)類(lèi)(ConcreteImplementor)
  3. 然后,定義一個(gè)抽象類(lèi)(Abstraction),它包含對(duì)實(shí)現(xiàn)部分的引用,并提供了客戶端的操作方法
  4. 創(chuàng)建不同的具體的繼承抽象類(lèi)的類(lèi)型
  5. 最后,客戶端代碼使用抽象類(lèi),而無(wú)需關(guān)心具體的實(shí)現(xiàn)細(xì)節(jié)

具體結(jié)構(gòu)如下圖: 

使用橋接模式實(shí)現(xiàn)的消息發(fā)送系統(tǒng)

using System;

// 1. 定義實(shí)現(xiàn)部分接口 - 消息發(fā)送方式
public interface IMessageSender
{
    void SendMessage(string message);
}

// 2.1 具體實(shí)現(xiàn)類(lèi)1 - 電子郵件發(fā)送
public class EmailSender : IMessageSender
{
    public void SendMessage(string message)
    {
        Console.WriteLine($"通過(guò)電子郵件發(fā)送: {message}");
    }
}

// 2.2 具體實(shí)現(xiàn)類(lèi)2 - SMS發(fā)送
public class SmsSender : IMessageSender
{
    public void SendMessage(string message)
    {
        Console.WriteLine($"通過(guò)SMS發(fā)送: {message}");
    }
}

// 3. 定義抽象類(lèi) - 消息
public abstract class Message
{
    protected IMessageSender messageSender;

    // 在構(gòu)造函數(shù)中引用實(shí)現(xiàn)接口
    public Message(IMessageSender messageSender)
    {
        this.messageSender = messageSender;
    }

    // 提供客戶端操作方法
    public abstract void Send();
}

// 4.1 具體的抽象類(lèi)繼承 - 普通消息
public class NormalMessage : Message
{
    private string content;

    public NormalMessage(string content, IMessageSender messageSender
        : base(messageSender)

    {
        this.content = content;
    }

    public override void Send()
    {
        messageSender.SendMessage($"普通消息: {content}");
    }
}

// 4.1 具體的抽象類(lèi)繼承 - 緊急消息
public class UrgentMessage : Message
{
    private string content;

    public UrgentMessage(string content, IMessageSender messageSender)
        : base(messageSender)

    {
        this.content = content;
    }

    public override void Send()
    {
        messageSender.SendMessage($"緊急! {content}");
    }
}

// 5. 客戶端使用
class Program
{
    static void Main(string[] args)
    {
        // 創(chuàng)建不同的消息發(fā)送方式
        IMessageSender emailSender = new EmailSender();
        IMessageSender smsSender = new SmsSender();

        // 創(chuàng)建普通消息并通過(guò)電子郵件發(fā)送
        Message normalEmailMessage = new NormalMessage("這是一個(gè)測(cè)試消息", emailSender);
        normalEmailMessage.Send();

        // 創(chuàng)建緊急消息并通過(guò)SMS發(fā)送
        Message urgentSmsMessage = new UrgentMessage("系統(tǒng)即將關(guān)閉", smsSender);
        urgentSmsMessage.Send();

        // 創(chuàng)建緊急消息并通過(guò)電子郵件發(fā)送
        Message urgentEmailMessage = new UrgentMessage("請(qǐng)立即回復(fù)", emailSender);
        urgentEmailMessage.Send();
    }
}

總結(jié)

橋接模式在以下情況下特別有用:

  1. 當(dāng)有多個(gè)變化維度,使用繼承會(huì)導(dǎo)致類(lèi)爆炸時(shí)
  2. 當(dāng)你想要避免抽象和它的實(shí)現(xiàn)之間的永久綁定時(shí)
  3. 當(dāng)你需要開(kāi)發(fā)一個(gè)可以在不同平臺(tái)上運(yùn)行的應(yīng)用程序時(shí),橋接模式可以隔離平臺(tái)特定的部分和業(yè)務(wù)邏輯部分

該文章在 2025/5/21 9:34:08 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产亚洲午夜黄频 | 成人乱码一区二区三区不卡视频 | 国产精品va在线观看无 | 国产精品欧美亚洲制服 | 日本三级韩国三级香港三级a级 | 国产精品一卡二卡3卡四卡网站 | www在线观看www一区二区 | 欧美精品整片免费观看 | 国产手机在线观看 | 欧美一区二区手机在线观看视频 | 男女激情| 国产骚系列在线观看 | 国产欧美日韩在 | 精品人成视频免费国产 | 日本视频网站www色高清免费 | 国产大片免费观看 | 国产a不卡片精品免费观看 精品国产免费第一区二区 国产亚洲精品bt天堂 | 日韩中文一区二区三区 | 日韩视频第一页 | 97视频| 国产在线国偷精品免费看 | 国产精品欧美视频另类专区 | 99爱这里只有精品 | 动漫美女被强奷视频免费网站 | 国产精品网站不卡在 | 日韩欧美一区二区高清视频 | 精品成人欧美大片 | 亚洲色偷偷偷综合网另类小说 | 4444kk亚洲 | 国产精品va在线观看不 | 欧美国产日韩高清在线 | 日本亚洲中文无线码在线观看 | 国产一级特黄a | 欧美日韩精品在线一区二区三区 | 国产精品欧美日 | 国产老妇伦国产熟 | 中奖视频在线观看国产 | 日韩午夜免费不卡视频 | 91色在线播放 | 国产在线观看免费人成视频 | 国产丝袜一区二 |