- 0
- 0
- 约1.16万字
- 约 26页
- 2019-03-17 发布于江苏
- 举报
HYPERLINK /Terrylee/archive/2005/12/13/295965.html .NET设计模式(3):抽象工厂模式(Abstract Factory)
抽象工厂模式(Abstract Factory)
——探索设计模式系列之三
Terrylee,2005年12月12日
概述
在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时由于需求的变化,往往存在着更多系列对象的创建工作。如何应对这种变化?如何绕过常规的对象的创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合?这就是我们要说的抽象工厂模式。
意图
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。
模型图
逻辑模型:
物理模型:
生活中的例子
抽象工厂的目的是要提供一个创建一系列相关或相互依赖对象的接口,而不需要指定它们具体的类。这种模式可以汽车制造厂所使用的金属冲压设备中找到。这种冲压设备可以制造汽车车身部件。同样的机械用于冲压不同的车型的右边车门、左边车门、右前挡泥板、左前挡泥板和引擎罩等等。通过使用转轮来改变冲压盘,这个机械产生的具体类可以在三分钟内改变。
抽象工厂之新解
虚拟案例
中国企业需要一项简单的财务计算:每月月底,财务人员要计算员工的工资。
员工的工资 = (基本工资 + 奖金 - 个人所得税)。这是一个放之四海皆准的运算法则。
为了简化系统,我们假设员工基本工资总是4000美金。
中国企业奖金和个人所得税的计算规则是:
奖金 = 基本工资(4000) * 10%
个人所得税 = (基本工资 + 奖金) * 40%
我们现在要为此构建一个软件系统(代号叫Softo),满足中国企业的需求。
案例分析
奖金(Bonus)、个人所得税(Tax)的计算是Softo系统的业务规则(Service)。
工资的计算(Calculator)则调用业务规则(Service)来计算员工的实际工资。
工资的计算作为业务规则的前端(或者客户端Client)将提供给最终使用该系统的用户(财务人员)使用。
针对中国企业为系统建模
根据上面的分析,为Softo系统建模如下:
?
则业务规则Service类的代码如下:
?1using?System;?2?3namespace?ChineseSalary?4{?5????///?summary?6????///?公用的常量?7????///?/summary?8????public?class?Constant?9????{10????????public?static?double?BASE_SALARY?=?4000;11????}12}
?1using?System;?2?3namespace?ChineseSalary?4{?5????///?summary?6????///?计算中国个人奖金?7????///?/summary?8????public?class?ChineseBonus?9????{10????????public?double?Calculate()11????????{12????????????return?Constant.BASE_SALARY?*?0.1;13????????}14????}15}16
客户端的调用代码:
?1using?System;?2?3namespace?ChineseSalary?4{?????5????///?summary?6????///?计算中国个人所得税?7????///?/summary?8????public?class?ChineseTax?9????{10????????public?double?Calculate()11????????{12????????????return?(Constant.BASE_SALARY?+?(Constant.BASE_SALARY?*?0.1))?*?0.4;13????????}14????}15}16
运行程序,输入的结果如下:
Chinese Salary is:2640
针对美国企业为系统建模
为了拓展国际市场,我们要把该系统移植给美国公司使用。
美国企业的工资计算同样是: 员工的工资 = 基本工资 + 奖金 - 个人所得税。
但是他们的奖金和个人所得税的计算规则不同于中国企业:
美国企业奖金和个人所得税的计算规则是:
奖金 = 基本工资 * 15 %
个人所得税 = (基本工资 * 5% + 奖金 * 25%)
根据前面为中国企业建模经验,我们仅仅将ChineseTax、Chinese
您可能关注的文档
- 房屋损坏纠纷鉴的方法.docx
- 房屋租赁经验汇.docx
- 房屋装修中厨房修不知从何下手,老师傅把你来解救!.docx
- 房屋装修中的五傻事,看看你家中了几条!.docx
- 房屋质量问题维的正确方式.docx
- 房屋预售合同与房合同的区别.docx
- 房改房继承纠纷处理方式.docx
- 房改房继承所涉属的认定及处理.docx
- 房车国度告诉你只有3%的旅行爱好者知道的省钱省心的房车秘籍.docx
- 房间配置物品损清单.docx
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
最近下载
- 我有友情要出租ppt.pptx VIP
- 2018年4月自考30002幼儿园教育活动设计与组织试卷及答案解释.doc VIP
- 2026年湖南国防工业职业技术学院单招职业技能考试题库附参考答案详解(综合题).docx VIP
- 九年级语文下册教学课件《短文两篇》.pptx VIP
- 反应粘结型高分子湿铺防水卷材施工工法.docx VIP
- 2026年湖南国防工业职业技术学院单招职业技能考试题库带答案详解(模拟题).docx VIP
- 拿来可用的管培生实施方案.docx VIP
- 沪教牛津版七年级(初一)下册全册单词表.pdf VIP
- 2026年湖南国防工业职业技术学院单招职业技能考试题库附参考答案详解(培优).docx VIP
- 美容院选址、开业、运营管理成功秘诀+美容店成功经营管理实务手册.doc VIP
原创力文档

文档评论(0)