C# 工廠模式(Factory Pattern)

工廠模式用于創建對象而不將具體類的代碼與客戶端代碼混合在一起,從而使一個類的實例化延遲到其子類。

示例代碼:

// 抽象產品  
public interface IProduct  
{  void Use();  
}  // 具體產品A  
public class ConcreteProductA : IProduct  
{  public void Use()  {  Console.WriteLine("Using ConcreteProductA");  }  
}  // 具體產品B  
public class ConcreteProductB : IProduct  
{  public void Use()  {  Console.WriteLine("Using ConcreteProductB");  }  
}  // 工廠類  
public class ProductFactory  
{  public static IProduct CreateProduct(string type)  {  switch (type)  {  case "A":  return new ConcreteProductA();  case "B":  return new ConcreteProductB();  default:  throw new ArgumentException("Invalid product type");  }  }  
}  // 客戶端代碼  
class Program  
{  static void Main(string[] args)  {  IProduct productA = ProductFactory.CreateProduct("A");  productA.Use();  IProduct productB = ProductFactory.CreateProduct("B");  productB.Use();  }  
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/42164.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/42164.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/42164.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux常用面試題

系統部分 1、在linux系統中,獲取命令幫助的方法有哪些? man (查看手冊頁) help(查看內部命令) --help(查看外部命令) 2、列舉find命令的用法?&#xff08…

QTableWidget表頭添加全選框

前言 QTableWidget表頭不能直接設置復選框,setCheckState不適用,所以直接使用設置圖片的方法最方便快捷,準備兩個圖片,分別為選中狀態和未選中狀態。 1.設置復選框列 設置第一列為復選框列,其他列正常顯示內容&…

大模型實戰:RAG的應用探索

自chatgpt卷過來,我們‘打開’了視野,發現‘什么都想要’成為了可能。但是隨著國內開源大模型的開放,越來越多人覺得通用LLM的價值很低(可能是商業利益的驅使)。大家對技術的追逐有變成了應用變現的需求。好吧&#xf…

日常的網絡雜記

網絡雜記 vlan 交換機配到一個vlan下面就可以互通,用來做物理上的網段隔離可以 ①access模式只能承載一個vlan的流量。如果兩個交換機上只有一個vlan,那么兩個交換機之間肯定能通信。 ②即使兩個交換機上有2個或2個以上的valn,但你把交換機…

Windows 11文件資源管理器選項卡的4個高級用法,肯定有你喜歡的

作為一個每天使用文件資源管理器來管理我的工作流程的人,選項卡幫助我為處于不同完成階段的工作創建了不同的文件夾。以下是我使用選項卡提高工作效率的最佳技巧。 打開和關閉選項卡 假設你的計算機上安裝了Windows 11的最新更新,請按Ctrl+E打開文件資源管理器。在我發現“…

WordPress的性能優化有哪些方法?

WordPress的性能優化方法主要包括以下幾個方面: 1. 使用緩存插件:緩存插件可以降低服務器負載,提高網站加載速度。常用的緩存插件有WP Rocket、WP Fastest Cache和Cache Enabler等。 2. 代碼壓縮和整合:通過壓縮JavaScript、CSS…

可驗證算法在招投標領域的專家“盲抽”中的標段識別碼加密應用研究

摘要 在招投標過程中,標段(包)識別碼的安全性至關重要。本文提出了一種基于可驗證算法的標段識別碼加密方法,以確保其在專家“盲抽”過程中的保密性和可信性。通過對不同表的標段識別碼進行全量加密,并通過匹配驗證其…

煙草企業如何在數字化轉型中實現從“傳統”到“智能”的跨越?

在數字化浪潮的席卷下,各行各業都在經歷著深刻的變革。作為國民經濟的重要組成部分,煙草行業正處于高質量發展的重要階段,加快信息系統國產化升級,對于提升行業競爭力、強化信息安全保障具有重要戰略意義。 達夢數據積極助力煙草行…

FPGA_GTX:簡要版

1. GTX介紹 Xilinx FPGA的GT意思是Gigabyte Transceiver。通常稱呼為Serdes、高速收發器。GT在xilinx不同系列有著不同的產品,從7系列到UltraScale系列分別有GTP、GTX、GTZ、GTH、GTY和GTM。不同GT整體結構上類似,為了支持越來越高的line rate&#xff…

PostgreSQL主從復制:打造高可用數據庫架構的秘籍

PostgreSQL主從復制:打造高可用數據庫架構的秘籍 在當今的數字化時代,數據的安全性和可靠性是企業最為關注的問題之一。PostgreSQL作為一種強大的開源關系型數據庫管理系統,提供了多種高可用性解決方案,其中主從復制是最為常用的…

嵌入式Linux系統編程 — 7.2 進程的環境變量

目錄 1 什么是進程的環境變量 2 環境變量的作用 3 應用程序中獲取環境變量 3.1 environ全局變量 3.2 獲取指定環境變量 getenv 4 添加/刪除/修改環境變量 4.1 putenv()函數添加環境變量 4.2 setenv()函數 4.3 unsetenv()函數 1 什么是進程的環境變量 每一個進程都有一…

Android觸摸事件分發關鍵點【筆記摘要】

觸摸事件分發:就是一個為了解決觸摸事件沖突而設置的機制 1.事件類型 ACTION_DOWN -> ACTION_UP / ACTION_CANCEL ACTION_DOWN -> ACTION_MOVE -> ACTION_MOVE -> ACTION_MOVE -> ACTION_UP / ACTION_CANCEL 這個取消事件ACTION_CANCEL它是一種特殊…

Hack The Box -- Blazorized

一、準備工作 端口掃描 詳細掃描 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-30 21:39 EDT Nmap scan report for 10.10.11.22 Host is up (0.26s latency).PORT STATE SERVICE VERSION 53/tcp open domain Simple DNS Plus 80/tcp op…

Java后端開發(十三)-- Java8 stream的 orElse(null) 和 orElseGet(null)

orElse(null)表示如果一個都沒找到返回null。【orElse()中可以塞默認值。如果找不到就會返回orElse中你自己設置的默認值。】 orElseGet(null)表示如果一個都沒找到返回null。【orElseGet()中可以塞默認值。如果找不到就會返回orElseGet中你自己設置的默認值。】 區別就…

MyBatisPlus Service接口的繼承

介紹 Service接口 接口基礎了接口 IService&#xff0c;實現類實現就需要實現IService里的方法&#xff0c;但是MyBatisplus已經幫我們寫好了實現類&#xff0c;給我們的實現類繼承即可。 public interface IEmpService extends IService<Emp> { //其他業務方法.... }…

web學習筆記(八十)

目錄 1.小程序實現微信一鍵登錄 2. 小程序的授權流程 3.小程序配置vant庫 4.小程序配置分包 5.小程序配置獨立分包 6.小程序分包預下載 1.小程序實現微信一鍵登錄 要先實現小程序一鍵登錄首先我們需要給按鈕設置一個綁定事件&#xff0c;然后在綁定事件內部通過wx.login…

產品經理-工作流程及職能(6)

產品經理作為互聯網項目的主心骨&#xff0c;連接著團隊的所有成員&#xff08;開發、設計、運營、測試、市場等&#xff09; 用合理的產品規劃和清晰的產品愿景帶領大家前進&#xff0c;通過滿足用戶需求來創造屬于自己的商業利益。 在通常情況下&#xff0c;PM需要對整個產品…

大數據前沿技術分享——數據編織:現代數據管理的革命性方法

一、什么是數據編織&#xff1f; 數據編織&#xff08;Data Fabric&#xff09;是一種現代數據管理架構&#xff0c;旨在通過集成、管理和提供數據訪問來簡化復雜的數據環境。它利用自動化和智能技術&#xff0c;如機器學習和人工智能&#xff0c;來實現數據的無縫連接和統一視…

Yarn: 現代化的JavaScript包管理器

在JavaScript開發的世界里&#xff0c;包管理器是開發者不可或缺的工具。Yarn&#xff0c;由Facebook創建&#xff0c;是一個快速、可靠且安全的依賴管理工具&#xff0c;它為JavaScript應用程序提供了一個更高效的方式來處理包的安裝、更新和版本控制。本文將介紹Yarn的基本用…

刷題Day44|188.買賣股票的最佳時機IV、309.最佳買賣股票時機含冷凍期、714.買賣股票的最佳時機含手續費

188.買賣股票的最佳時機IV 188. 買賣股票的最佳時機 IV - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;最多買賣k次&#xff0c;每次都有持有和不持有&#xff0c;所以下標最大到dp[i][2k]。 309.最佳買賣股票時機含冷凍期 309. 買賣股票的最佳時機含冷凍期 - 力…