首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 設計模式:橋接模式基礎實體與基礎抽象類別 (2/5)

     編輯:關於C語言

資料實體:MessageModel

橋接模式中傳遞的資料模型:

using System;
using System.Collections.Generic;
using System.Text;

namespace Pattern.Bridge
{
    /// 
    /// Message 實體類別
    /// 
    public class MessageModel
    {
        /// 
        /// 建構函式
        /// 
        /// Message 內容
        /// Message 發布時間
        public MessageModel(string msg, DateTime pt)
        {
            this._message = msg;
            this._publishTime = pt;
        }

        private string _message;
        /// 
        /// Message 內容
        /// 
        public string Message
        {
            get { return _message; }
            set { _message = value; }
        }

        private DateTime _publishTime;
        /// 
        /// Message 發布時間
        /// 
        public DateTime PublishTime
        {
            get { return _publishTime; }
            set { _publishTime = value; }
        }
    }
}

基礎抽象:Message (Abstraction)

持有實作介面參考,定義高層操作並委派給實作物件:

using System;
using System.Collections.Generic;
using System.Text;

namespace Pattern.Bridge
{
    /// 
    /// 操作 Message(Abstraction)
    /// 
    public class Message
    {
        private AbstractMessage _abstractMessage;
        
        /// 
        /// 操作 Message(Implementor)
        /// 
        public AbstractMessage AbstractMessage
        {
            get { return _abstractMessage; }
            set { _abstractMessage = value; }
        }

        /// 
        /// 獲取 Message
        /// 
        /// MessageModel 清單
        public virtual List<MessageModel> Get()
        {
            return _abstractMessage.Get();
        }

        /// 
        /// 插入 Message
        /// 
        /// Message 實體物件
        /// 是否成功
        public virtual bool Insert(MessageModel mm)
        {
            return _abstractMessage.Insert(mm);
        }
    }
}

Abstraction 角色核心職責

  • 持有實作參考:_abstractMessage 欄位儲存 AbstractMessage 實例。
  • 屬性注入:透過 AbstractMessage 屬性支援運行時動態切換實作。
  • 委派操作:Get()、Insert() 直接委派給實作物件。
  • 虛擬方法:標記為 virtual 允許子類別(RefinedAbstraction)覆寫擴展。
  • 高層控制:抽象層可包含業務流程控制、權限檢查、日誌記錄等橫切關注點。

橋接模式四大角色對應表

模式角色本例類別說明
AbstractionMessage基礎抽象,持有 Implementor 參考
RefinedAbstractionMyMessage擴展抽象,增加額外行為
ImplementorAbstractMessage實作介面,定義核心操作契約
ConcreteImplementorSqlMessage, XMLMessage具體實作,封裝具體技術細節
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved