男女做爽爽爽网站-男女做羞羞高清-男女做爰高清无遮挡免费视频-男女做爰猛烈-男女做爰猛烈吃奶啪啪喷水网站-内射白浆一区

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

使用橋接模式在 C# 中實現一個消息發送系統

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

前言

你了解橋接模式嗎?

橋接模式是一種結構型設計模式,其核心思想是將抽象部分與實現部分分離,使得二者可以獨立變化。

這種模式特別適用于需要在多個維度上進行擴展或變化的場景。

今天我跟大家分享一個使用橋接模式在 C# 中實現一個消息發送系統的例子。

核心思想

橋接模式的核心思想是將一個大類或一系列緊密相關的類拆分為兩個獨立的層次——抽象部分和實現部分。

這樣做的好處是可以讓這兩個層次獨立地擴展,而不會互相影響。

結構和實現

  1. 首先,需要定義一個接口(Implementor)來表示實現部分,這個接口需要定義實現抽象類的方法,但不包含任何抽象類的邏輯
  2. 其次,創建不同的具體的實現類(ConcreteImplementor)
  3. 然后,定義一個抽象類(Abstraction),它包含對實現部分的引用,并提供了客戶端的操作方法
  4. 創建不同的具體的繼承抽象類的類型
  5. 最后,客戶端代碼使用抽象類,而無需關心具體的實現細節

具體結構如下圖: 

使用橋接模式實現的消息發送系統

using System;

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

// 2.1 具體實現類1 - 電子郵件發送
public class EmailSender : IMessageSender
{
    public void SendMessage(string message)
    {
        Console.WriteLine($"通過電子郵件發送: {message}");
    }
}

// 2.2 具體實現類2 - SMS發送
public class SmsSender : IMessageSender
{
    public void SendMessage(string message)
    {
        Console.WriteLine($"通過SMS發送: {message}");
    }
}

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

    // 在構造函數中引用實現接口
    public Message(IMessageSender messageSender)
    {
        this.messageSender = messageSender;
    }

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

// 4.1 具體的抽象類繼承 - 普通消息
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 具體的抽象類繼承 - 緊急消息
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)
    {
        // 創建不同的消息發送方式
        IMessageSender emailSender = new EmailSender();
        IMessageSender smsSender = new SmsSender();

        // 創建普通消息并通過電子郵件發送
        Message normalEmailMessage = new NormalMessage("這是一個測試消息", emailSender);
        normalEmailMessage.Send();

        // 創建緊急消息并通過SMS發送
        Message urgentSmsMessage = new UrgentMessage("系統即將關閉", smsSender);
        urgentSmsMessage.Send();

        // 創建緊急消息并通過電子郵件發送
        Message urgentEmailMessage = new UrgentMessage("請立即回復", emailSender);
        urgentEmailMessage.Send();
    }
}

總結

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

  1. 當有多個變化維度,使用繼承會導致類爆炸時
  2. 當你想要避免抽象和它的實現之間的永久綁定時
  3. 當你需要開發一個可以在不同平臺上運行的應用程序時,橋接模式可以隔離平臺特定的部分和業務邏輯部分

該文章在 2025/5/21 9:34:08 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产最新免费高清在线视频 | 中文字幕肉感巨大的乳专区 | 日本日本熟妇中文在线视频 | 少妇精品无码一区二区免费 | 一区二区三区好的精华液杨朝越 | 自慰喷白浆一区二区 | 麻豆免费版 | 老司机精品在线 | 国产清纯91天堂在线观看 | 国产成人无码区免费内射一片色欲 | 麻豆系列在线视频 | 欧美激情一区二区三区视频 | 亚洲 自拍 欧美 小说 综合 | 911精品国产91久久久久 | 日本丰满妇人成熟免费中文字幕 | 日韩精品中文字幕高清在线 | 久久久精品国产亚洲成人满1 | 国产精品美女视频久久 | 91精品全国免费观看青青 | av无码精品人妻色欲 | 91精品孕妇系列 | 真人作爱视频免费视频大全 | 午夜福利精品久久 | 免费女性裸身照无遮挡网站 | 动漫精品欧美一区二区三区 | 久久久久一区二区三区四区 | 91嫩草国产在线无码观看 | 一区二区三区国产 | 日本毛片爽看免费视频 | 久久久久久精品一区二区无码 | 丁香五月天婷婷缴情五月 | 激情综合丁香婷婷色五月 | 看片免费所有网站 | 国产人妻大保健私密推油按摩无码 | 欧美人成在 | 日本妈妈大奶 | 免费国产精品丝袜 | A片A三女人久久20247 | 亚洲AV无码成人黄网站在线播放 | 久草资免费资源 | 国产欧美二区综合 |