在軟件系統(tǒng)中,經(jīng)常面臨著“一系列相互依賴的對象”的創(chuàng)建工作;同時由于需求的變化,往往存在著更多系列對象的創(chuàng)建工作。如何應(yīng)對這種變化?如何繞過常規(guī)的對象的創(chuàng)建方法(new),提供一種“封 " /> 久久精品aaaaaa毛片,亚洲精品国产成人久久av盗摄,福利电影一区二区

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

.NET設(shè)計(jì)模式:抽象工廠模式(Abstract Factory)

  概述
  在軟件系統(tǒng)中,經(jīng)常面臨著“一系列相互依賴的對象”的創(chuàng)建工作;同時由于需求的變化,往往存在著更多系列對象的創(chuàng)建工作。如何應(yīng)對這種變化?如何繞過常規(guī)的對象的創(chuàng)建方法(new),提供一種“封裝機(jī)制”來避免客戶程序和這種“多系列具體對象創(chuàng)建工作”的緊耦合?這就是我們要說的抽象工廠模式。

  意圖
  提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無需指定它們具體的類。

  模型圖
  邏輯模型:

  物理模型:

  生活中的例子
  抽象工廠的目的是要提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而不需要指定它們具體的類。這種模式可以汽車制造廠所使用的金屬沖壓設(shè)備中找到。這種沖壓設(shè)備可以制造汽車車身部件。同樣的機(jī)械用于沖壓不同的車型的右邊車門、左邊車門、右前擋泥板、左前擋泥板和引擎罩等等。通過使用轉(zhuǎn)輪來改變沖壓盤,這個機(jī)械產(chǎn)生的具體類可以在三分鐘內(nèi)改變。

  抽象工廠之新解

  虛擬案例
  中國企業(yè)需要一項(xiàng)簡單的財(cái)務(wù)計(jì)算:每月月底,財(cái)務(wù)人員要計(jì)算員工的工資。
  員工的工資 = (基本工資 + 獎金 - 個人所得稅)。這是一個放之四海皆準(zhǔn)的運(yùn)算法則。
  為了簡化系統(tǒng),我們假設(shè)員工基本工資總是4000美金。
  中國企業(yè)獎金和個人所得稅的計(jì)算規(guī)則是:
  獎金 = 基本工資(4000) * 10%
  個人所得稅 = (基本工資 + 獎金) * 40%
  我們現(xiàn)在要為此構(gòu)建一個軟件系統(tǒng)(代號叫Softo),滿足中國企業(yè)的需求。

  案例分析
  獎金(Bonus)、個人所得稅(Tax)的計(jì)算是Softo系統(tǒng)的業(yè)務(wù)規(guī)則(Service)。
  工資的計(jì)算(Calculator)則調(diào)用業(yè)務(wù)規(guī)則(Service)來計(jì)算員工的實(shí)際工資。
  工資的計(jì)算作為業(yè)務(wù)規(guī)則的前端(或者客戶端Client)將提供給最終使用該系統(tǒng)的用戶(財(cái)務(wù)人員)使用。

  針對中國企業(yè)為系統(tǒng)建模
  根據(jù)上面的分析,為Softo系統(tǒng)建模如下:

 

  則業(yè)務(wù)規(guī)則Service類的代碼如下:

using System;
namespace ChineseSalary
{
/**////
/// 公用的常量
///
public class Constant
{
public static double BASE_SALARY = 4000;
}
}

NET技術(shù).NET設(shè)計(jì)模式:抽象工廠模式(Abstract Factory),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 蕲春县| 柞水县| 扎兰屯市| 江永县| 田林县| 吉林省| 郸城县| 辽宁省| 隆回县| 北票市| 茌平县| 大丰市| 正宁县| 金秀| 玉屏| 登封市| 白银市| 台中市| 黑水县| 宾川县| 定陶县| 阿勒泰市| 文登市| 房产| 龙南县| 正阳县| 鹤壁市| 津市市| 万州区| 项城市| 确山县| 瓦房店市| 平和县| 海盐县| 凉城县| 镇沅| 新巴尔虎右旗| 安陆市| 民乐县| 浏阳市| 方城县|