1. 程式人生 > >設計模式之工廠方法的重載

設計模式之工廠方法的重載

連接數 字符串 初始化 eat 滿足 text pan 聲明 int

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//工廠方法的重載
namespace Factory_event
{
    internal interface hload_LoggerFactory
    {
        Logger CreateLogger();
        Logger CreateLogger(string args);
        Logger CreateLogger(object obj);
    }

    
internal class hload_DatabaseLoggerFactory : hload_LoggerFactory { public Logger CreateLogger() { //使用默認方式連接數據庫,代碼省略 Logger logger=new DatabaseLogger(); Console.WriteLine("使用默認方式連接數據庫"); //初始化數據庫日誌 return logger; }
public Logger CreateLogger(string args) { //使用參數args作為鏈接字符串來鏈接數據庫,代碼省略 Logger logger = new DatabaseLogger(); Console.WriteLine("使用參數{0}作為鏈接字符串來鏈接數據庫", args); //初始化數據庫日誌 return logger; } public Logger CreateLogger(object
obj) { //使用封裝在obj中的鏈接字符串來鏈接數據庫,代碼省略 Logger logger = new DatabaseLogger(); Console.WriteLine("使用封裝在obj中的鏈接字符串來鏈接數據庫"); //初始化數據庫日誌 return logger; } /* * 在抽象工廠中聲明了多個重載工廠方法,在具體工廠中實現了這些工廠方法, * 這些方法可以包含不同的業務邏輯以滿足產品對象的多樣化創建需求。 */ } }
class Program
    {
        static void Main(string[] args)
        {
            
            //工廠方法重載
            hload_LoggerFactory h_factory =new hload_DatabaseLoggerFactory();
            logger=h_factory.CreateLogger();
            logger.WriteLog();
            logger=h_factory.CreateLogger("123");
            logger.WriteLog();
            Console.Read();
            
        }
    }

設計模式之工廠方法的重載