程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C# 設計形式系列教程-簡略工場形式

C# 設計形式系列教程-簡略工場形式

編輯:C#入門知識

C# 設計形式系列教程-簡略工場形式。本站提示廣大學習愛好者:(C# 設計形式系列教程-簡略工場形式)文章只能為提供參考,不一定能成為您想要的結果。以下是C# 設計形式系列教程-簡略工場形式正文


1. 概述:

  將一個詳細類的實例化交給一個靜態工場辦法來履行,它不屬於GOF的23種設計形式,但實際中卻常常會用到

2. 形式中的腳色

  2.1 工場類(Simple Factory): 只包括了創立詳細類的靜態辦法。

  2.2 籠統產物(Product):界說簡略工場中要前往的產物。

  2.3 詳細產物(ConcreteProduct):詳細產物。

3. 形式解讀

  3.1 簡略工場形式的普通化類圖

https://www.aspphp.online/bianchen/UploadFiles_4619/201707/2017072810421689.png

  3.2 簡略工場形式的代碼完成

 /// <summary>
 /// 簡略工場類,用sealed潤飾,
 /// </summary>
 public class SimpleProductFactory
 {
  /// <summary>
  /// 應用靜態辦法,依據傳入的參數來指定要實例化哪種產物
  /// </summary>
  /// <param name="productType"></param>
  /// <returns></returns>
  public static Product CreateProduct(string productType)
  {
   Product product = null;
   switch (productType)
   {
    case "A":
     product = new ConcreteProductA();
     break;
    case "B":
     product = new ConcreteProductB();
     break;
   }

   return product;
  }
 }

 /// <summary>
 /// 籠統產物
 /// </summary>
 public abstract class Product
 {
  public Product()
  { }

  public abstract void Opration();
 }

 /// <summary>
 /// 詳細產物 A
 /// </summary>
 public class ConcreteProductA : Product
 {
  public ConcreteProductA() { }

  public override void Opration()
  {
   // 產物A
  }
 }

 /// <summary>
 /// 詳細產物 B
 /// </summary>
 public class ConcreteProductB : Product
 {
  public ConcreteProductB() { }

  public override void Opration()
  {
   //產物B
  }
 }

4. 形式總結

  4.1 長處:
    4.1.1 職責單一,完成簡略,且完成了客戶端代碼與詳細完成的解耦。

    4.1.2 工場類是全部形式的症結.包括了需要的邏輯斷定,依據外界給定的信息,決議畢竟應當創立哪一個詳細類的對象.

    4.1.3 經由過程應用工場類,外界可以從直接創立詳細產物對象的為難局勢解脫出來,僅僅須要擔任“花費”對象便可以了。而不用管這些對象畢竟若何創立及若何組織的.

    4.1.4 明白了各自的職責和權力,有益於全部軟件系統構造的優化。
  4.2 缺陷:
    4.2.1 因為工場類集中了一切實例的創立邏輯,違背了高內聚義務分派准繩,將全體創立邏輯集中到了一個工場類中;它所能創立的類只能是事前斟酌到的,假如須要添加新的類,則就須要轉變工場類了。是以它是違反開放關閉准繩的。
    4.2.2 當體系中的詳細產物類赓續增多時刻,能夠會湧現請求工場類依據分歧前提創立分歧實例的需求.這類對前提的斷定和對詳細產物類型的斷定交織在一路,很難防止模塊功效的舒展,對體系的保護和擴大異常晦氣;
    注:這些缺陷在工場辦法形式中獲得了必定的戰勝。
  4.3 應用場景:
    4.3.1 工場類擔任創立的對象比擬少;
    4.3.2 客戶只曉得傳入工場類的參數,關於若何創立對象(邏輯)不關懷;
    4.3.3 因為簡略工場很輕易違背高內聚義務分派准繩,是以普通只在很簡略的情形下運用。

以上就是本文的全體內容,願望能給年夜家一個參考,也願望年夜家多多支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved