久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx

.NET簡單的工廠模式講解-創新互聯

本篇內容主要講解“.NET簡單的工廠模式講解”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“.NET簡單的工廠模式講解”吧!

創新互聯公司專注于網站建設,為客戶提供網站設計、做網站、網頁設計開發服務,多年建網站服務經驗,各類網站都可以開發,品牌網站制作,公司官網,公司展示網站,網站設計,建網站費用,建網站多少錢,價格優惠,收費合理。

簡單工廠模式介紹:

簡單工廠模式是屬于創建型模式,又叫做靜態工廠方法(Static Factory Method)模式,但不屬于23種GOF設計模式之一。簡單工廠模式是由一個工廠對象決定創建出哪一種產品類的實例。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的一個特殊實現。

結構模式圖:

.NET簡單的工廠模式講解

角色分類:


工廠(Creator)角色
簡單工廠模式的核心,它負責實現創建所有實例的內部邏輯。工廠類的創建產品類的方法可以被外界直接調用,創建所需的產品對象。


抽象產品(Product)角色
簡單工廠模式所創建的所有對象的父類,它負責描述所有實例所共有的公共接口。


具體產品(Concrete Product)角色
是簡單工廠模式的創建目標,所有創建的對象都是充當這個角色的某個具體類的實例。


引入實際情況:

如果有一個住戶管理系統,里面的住戶類型是可變的,每一種租戶類型的租金計算公式都存在差異

A類型的住戶租金額=天數*單價+績效*0.005

B類型的住戶租金額=月份*(每月價格+performance*0.001)

分析:

1. 商店存在共有的計算方法,這是實體商店的行為,然而他們的行為的方式不一樣,所有我們抽象商店類,代碼如下:

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

namespace SimpleFactory.App.IFactroy
{
  
  public interface Ishop
  {
    double Getrent(int days, double dayprice, double performance);
  }
}

2.在抽象了商店之后,我們要對創建具體產品類,這里就是具體的類型商店,里面實現該商店的行為方法。創建A類型的商店

using SimpleFactory.App.IFactroy;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SimpleFactory.App.product
{
  //A類型的商店的創建
  public class Ashop:Ishop
  {
    /// <summary>
    /// /// A類型商店租金額,天數*單價+績效*0.005
    /// </summary>
    /// <param name="days">天數</param>
    /// <param name="dayprice">每天單價</param>
    /// <param name="performance">日平均績效</param>
    /// <returns></returns>
    public double Getrent(int days, double dayprice, double performance)
    {
      Console.WriteLine("A商店的租金算法");
      return days * dayprice + performance * 0.01;
    }
  }
}

3.創建B類型的商店:

using SimpleFactory.App.IFactroy;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SimpleFactory.App.product
{
  /// <summary>
  /// B類型的商店的創建
  /// </summary>
  public class Bshop:Ishop
  {
    
    /// <summary>
    /// B類型商店的租金=月份*(每月價格+performance*0.001)
    /// </summary>
    /// <param name="month">月數</param>
    /// <param name="monthprice">月單價</param>
    /// <param name="performance">月平均績效</param>
    /// <returns></returns>
    public double Getrent(int month, double monthprice, double performance)
    {
      Console.WriteLine("B商店的租金算法");
      return month * (monthprice + performance * 0.001);
    }
  }
}

4. 在創建號類型商店并實現方法后,思考在什么情況下如何創建那種對象,于是簡單工廠模式中最核心的部分:工廠類出來了

using SimpleFactory.App.IFactroy;
using SimpleFactory.App.product;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SimpleFactory.App.factoryMethod
{
  public class factorymethod
  {
    public Ishop CreateShow(string show)
    {
      switch (show.Trim().ToLower())
      {
        case"ashop":
          return new Ashop();
        case "bshop":
          return new Ashop();
        default:
          throw new Exception("該商店不存在");
      }
    }
  }
}

5.然后就根據當前的商店類型進行判斷,該類型的商店應該進行哪一種算法:

using SimpleFactory.App.factoryMethod;
using SimpleFactory.App.IFactroy;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SimpleFactory.App
{
  class Program
  {
    static void Main(string[] args)
    {
      Ishop As;
      factorymethod afm = new factorymethod();
      As = afm.CreateShow("ashop"); //a 類型的某商店
      double total = As.Getrent(30, 300, 2000);   //30 天/100元 日平均績效為2000
      Console.WriteLine("該A類型商店的租金為:" + total);

      Console.WriteLine("=============");

      Ishop Bs;
      factorymethod bfm = new factorymethod();
      Bs = bfm.CreateShow("bshop"); //b 類型的某商店
      total = Bs.Getrent(3, 3000, 60000);     //3 月/4000元 月平均績效為60000
      Console.WriteLine("該B類型商店的租金為:" + total);
      Console.ReadKey();
    }
  }
}

到這里我們實現了客戶要求的兩種類型商店的算法的需求,但是作為一種好的設計架構,還應該考慮到后面的需求變革,如果客戶現在又增加了C類型商店和D類型商店,它們的算法要求又不一樣,這個時候我們就需要進行C,D類型商店的創建,并繼承Ishop接口,實現里面的方法,同時還得繼續修改工廠類在switc中增加case進行捕捉創建相應的商店對象,一旦出現這樣的情況,是不利于程序的擴展性和項目后期的維護性的。

優點:

  • 簡單工廠模式能夠根據外界給定的信息,決定究竟應該創建哪個具體類的對象。通過它,外界可以從直接創建具體產品對  象的尷尬局面中擺脫出來。

  • 外界與具體類隔離開來,偶合性低。

  • 明確區分了各自的職責和權力,有利于整個軟件體系結構的優化。


缺點:

  • 工廠類集中了所有實例的創建邏輯,容易違反GRASPR的高內聚的責任分配原則

  • 雖然簡單工廠模式能夠適應一定的變化,但是它所能解決的問題是遠遠有限的。它所能創建的類只能是事先教考慮到的,如果需要添加新的類,則就需要改變工廠類了。


到此,相信大家對“.NET簡單的工廠模式講解”有了更深的了解,不妨來實際操作一番吧!這里是創新互聯建站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

網頁題目:.NET簡單的工廠模式講解-創新互聯
當前鏈接:http://www.js-pz168.com/article46/djojhg.html

成都網站建設公司_創新互聯,為您提供面包屑導航營銷型網站建設網站設計外貿網站建設網頁設計公司建站公司

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設
久久99久久人婷婷精品综合_超碰aⅴ人人做人人爽欧美_亚洲电影第三页_日韩欧美一中文字暮专区_波多野结衣的一区二区三区_婷婷在线播放_人人视频精品_国产精品日韩精品欧美精品_亚洲免费黄色_欧美性猛交xxxxxxxx
精品av久久707| 欧美精品一区二区高清在线观看| 国产综合久久久久久久久久久久| 午夜在线电影亚洲一区| 亚洲综合在线免费观看| 亚洲欧美另类久久久精品| 最新成人av在线| 亚洲欧洲精品一区二区三区不卡| 国产精品久久99| 一区视频在线播放| 亚洲日本一区二区三区| 亚洲四区在线观看| 亚洲影院理伦片| 偷拍一区二区三区| 免费观看在线综合色| 麻豆精品久久精品色综合| 久久99久久精品| 国产一区二区精品久久| 国产成a人亚洲| www.成人在线| αv一区二区三区| 久久99久久99精品蜜柚传媒| 欧美精品亚洲精品| 亚州欧美一区三区三区在线| 精品国内片67194| 9191成人精品久久| 欧美xxxx老人做受| 日本一区二区三区在线观看| 中文字幕日本乱码精品影院| 一区二区三区四区在线免费观看| 亚洲一二三区视频在线观看| 日韩不卡手机在线v区| 国内国产精品久久| 波多野结衣在线一区| 成人自拍网站| 日韩av高清| 在线免费一区三区| 日韩一级视频免费观看在线| 久久精品欧美一区二区三区麻豆| 中文字幕永久在线不卡| 亚洲一区二区高清| 久久91精品国产91久久小草| 成人免费视频播放| 国产一级二级三级精品| 日韩欧美精品久久| 欧美日韩一卡二卡三卡| 久久综合久久99| 亚洲久本草在线中文字幕| 日本午夜精品一区二区三区电影| 国产精品资源站在线| 97se在线视频| 日韩欧美亚洲在线| 欧美日本一区二区三区四区| 久久这里只精品最新地址| 中文字幕一区二区三区视频| 丝袜美腿亚洲一区| 国产成人综合网| 五月婷婷久久丁香| 国内精品在线播放| 成人av男人的天堂| 亚洲一区二区三区精品在线观看| 欧美精品123区| 国产精品丝袜一区| 日韩vs国产vs欧美| heyzo一本久久综合| 蜜桃av色综合| 欧美日韩激情在线| 中日韩免费视频中文字幕| 亚洲高清免费视频| 国产99久久久国产精品潘金| 久99久视频| 欧美日韩免费一区二区三区| 欧美国产禁国产网站cc| 日韩国产在线观看一区| 91亚洲男人天堂| 亚洲欧美日韩国产yyy| 日韩一区二区三区精品视频| 亚洲欧美激情在线| 国产精品一区二区男女羞羞无遮挡 | 欧美精品1区2区3区| 中文字幕免费不卡| 免费久久精品视频| 国产成人免费电影| 在线欧美一区二区| 中文字幕av一区 二区| 日本欧美在线观看| 99影视tv| 欧美午夜电影一区| 国产精品乱码一区二区三区软件 | 性欧美大战久久久久久久久| av在线播放一区二区三区| 小说区图片区图片区另类灬| 精品欧美久久久| 视频一区欧美精品| 成人自拍视频网站| 欧美日韩不卡在线| 亚洲精品日日夜夜| 成人av资源网站| 这里只有精品66| 中文字幕av一区二区三区高 | 成人性生交大片免费看在线播放| 日韩免费中文专区| 久久久三级国产网站| 蜜桃在线一区二区三区| 国产亚洲欧美一区二区| 91精品国产91综合久久蜜臀| 亚洲一区影音先锋| 亚洲精品日日夜夜| av电影一区二区| 在线观看视频一区二区欧美日韩| 国产精品高潮呻吟久久| 粉嫩嫩av羞羞动漫久久久| 亚洲精品国产精品国自产观看| 久久精品视频在线免费观看| 韩日欧美一区二区三区| 日韩尤物视频| 国产精品网站在线观看| 国产成人在线电影| 色综合久久天天| 亚洲丝袜自拍清纯另类| 99精品国产视频| 欧美喷水一区二区| 五月综合激情日本mⅴ| 精品1区2区| 久久久久9999亚洲精品| 国产精品一区专区| 色噜噜狠狠一区二区三区果冻| 亚洲色图欧美在线| 91影院未满十八岁禁止入内| 欧美一区午夜视频在线观看| 日本成人超碰在线观看| 青青影院一区二区三区四区| 国产日韩综合av| 大胆亚洲人体视频| 欧美日韩一区二区在线观看| 午夜欧美电影在线观看| 九色视频成人porny| 久久久久久久av麻豆果冻| 国产高清精品网站| 欧美视频在线观看一区二区| 午夜国产精品一区| 欧美激情国产日韩| 国产精品美女久久久久久| av电影在线观看完整版一区二区| 在线成人av网站| 久久综合综合久久综合| 亚洲精品一区二区毛豆| 樱花影视一区二区| 六十路精品视频| 国产精品毛片久久久久久| 97在线资源站| 2024国产精品| 波多野结衣亚洲一区| 欧美一区二区三区免费在线看| 极品少妇xxxx精品少妇| 在线免费精品视频| 蜜臀va亚洲va欧美va天堂| 中文字幕成人一区| 婷婷中文字幕一区三区| 污视频在线免费观看一区二区三区 | 中文字幕在线观看不卡视频| 99re在线播放| 国产丝袜欧美中文另类| 96久久精品| 欧美国产日本视频| 国产精品久久久久久免费观看| 久久久www成人免费无遮挡大片| av中文字幕亚洲| 久久日一线二线三线suv| 91一区在线观看| 久久精品无码一区二区三区| 91麻豆自制传媒国产之光| 久久午夜免费电影| 亚洲国产美国国产综合一区二区| 欧美一级二级三级九九九| 一区二区不卡在线播放 | 精品在线不卡| 亚洲免费在线看| 日韩国产在线一区| 亚洲电影你懂得| 一区二区三区我不卡| 青青草一区二区三区| 欧洲一区二区av| 国产在线播精品第三| 欧美一区二区三区喷汁尤物| 成人午夜av电影| 久久久久久久久久久久久久久99 | 婷婷四房综合激情五月| 日韩中文字幕不卡| 欧美亚一区二区| 国产一区二区剧情av在线| 日韩欧美一级二级| 91天堂素人约啪| 国产精品国产自产拍在线| 久久精品成人一区二区三区蜜臀| 亚洲欧洲中文日韩久久av乱码| 神马一区二区影院| 免费看欧美美女黄的网站| 欧美精品在线视频| 成人av网站在线观看免费|