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

C# 設計模式:工廠方法模式基礎實體與抽象產品 (2/4)

     編輯:關於C語言

資料實體:MessageModel

工廠方法模式中傳遞的資料模型:

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

namespace Pattern.FactoryMethod
{
    /// 
    /// 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; }
        }
    }
}

抽象產品:AbstractMessage

定義所有具體產品必須實作的介面契約:

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

namespace Pattern.FactoryMethod
{
    /// 
    /// 操作 Message 抽象類別(Product)
    /// 
    public abstract class AbstractMessage
    {
        /// 
        /// 獲取 Message
        /// 
        /// MessageModel 清單
        public abstract List<MessageModel> Get();

        /// 
        /// 插入 Message
        /// 
        /// Message 實體物件
        /// 是否成功
        public abstract bool Insert(MessageModel mm);
    }
}

角色關係圖解

  • MessageModel:資料傳輸物件 (DTO),在產品方法間傳遞資料。
  • AbstractMessage:抽象產品角色,定義 Get()、Insert() 兩個核心操作。
  • SqlMessage / XMLMessage:具體產品角色,實作抽象產品介面。
  • AbstractMessageFactory:抽象工廠角色,宣告 CreateMessage() 工廠方法。
  • SqlMessageFactory / XMLMessageFactory:具體工廠角色,實作工廠方法返回對應具體產品。

設計原則體現

  • 依賴倒轉原則:客戶端依賴抽象工廠與抽象產品,而非具體類別。
  • 單一職責原則:每個類別只負責單一功能(資料載體、介面定義、具體實作、創建邏輯)。
  • 開放封閉原則:新增存儲方式只需新增具體產品與具體工廠,無需修改現有代碼。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved