反射 + 抽象工廠模式切換不同的實現(xiàn)方法

概述
工廠模式(Abstract Factory)定義 :提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無需指定它們具體的類。
抽象工廠模式(Abstract Factory Pattern)是圍繞一個超級工廠創(chuàng)建其他工廠。該超級工廠又稱為其他工廠的工廠。這種類型的設(shè)計模式屬于創(chuàng)建型模式,它提供了一種創(chuàng)建對象的最佳方式。
在抽象工廠模式中,接口是負(fù)責(zé)創(chuàng)建一個相關(guān)對象的工廠,不需要顯式指定它們的類。每個生成的工廠都能按照工廠模式提供對象。
實現(xiàn)
1、在項目中,創(chuàng)建接口IA

using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;namespace 工廠{public interface IA{string RequestId();}}
2、實現(xiàn)方法1
using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;namespace 工廠{public class a1 : IA{public string RequestId(){return "a11111";}}}
3、實現(xiàn)方法2
using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;namespace 工廠{public class a2 : IA{public string RequestId(){return "a22222";}}}
測試
使用反射的方式,切換不同的實現(xiàn)方法
public IActionResult Index(){var a1 = (工廠.IA)Assembly.Load("工廠").CreateInstance("工廠.a1");Console.WriteLine(a1);var a2 = (工廠.IA)Assembly.Load("工廠").CreateInstance("工廠.a2");Console.WriteLine(a2);return View();}
結(jié)果如下,達到預(yù)期效果

代碼地址:
https://gitee.com/conanOpenSource_admin/Example/tree/master/%E5%B7%A5%E5%8E%82
【推薦】.NET Core開發(fā)實戰(zhàn)視頻課程 ★★★
.NET Core實戰(zhàn)項目之CMS 第一章 入門篇-開篇及總體規(guī)劃
【.NET Core微服務(wù)實戰(zhàn)-統(tǒng)一身份認(rèn)證】開篇及目錄索引
Redis基本使用及百億數(shù)據(jù)量中的使用技巧分享(附視頻地址及觀看指南)
.NET Core中的一個接口多種實現(xiàn)的依賴注入與動態(tài)選擇看這篇就夠了
用abp vNext快速開發(fā)Quartz.NET定時任務(wù)管理界面
在ASP.NET Core中創(chuàng)建基于Quartz.NET托管服務(wù)輕松實現(xiàn)作業(yè)調(diào)度
現(xiàn)身說法:實際業(yè)務(wù)出發(fā)分析百億數(shù)據(jù)量下的多表查詢優(yōu)化
