1、抽象工厂简介

在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时由于需求的变化,往往存在着更多系列对象的创建工作。

  • 如何应对这种变化?
  • 如何绕过常规的对象的创建方法(new)?
  • 如何来避免客户程序和这种“多系列具体对象创建工作”的紧耦合?

然而抽象工厂便可以很好地解决这个问题!

2、意图

提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。

3、适用性

  • 一个系统要独立与它的产品创建、组合和表示时
  • 一个系统要由多个产品系列中的一个来配置时
  • 当你要强调一系列相关的产品对象的设计以便进行联合使用时
  • 当你提供一个产品类库,而只想显示它们的接口而不是实现时

4、结构图

设计模式系列一创建型之(抽象工厂模式)

 

5、应用实例

注:此案例,借鉴网络资料;比较易于学习,所以自己练习了下,在这里也给大家分享了!

中国企业需要一项简单的财务计算:每月月底,财务人员要计算员工的工资。

员工工资 = 基本工资 + 奖金 - 个人所得税 ; 为了简化系统,这里定义员工基本工资:4000

中国企业奖金和个人所得税的计算规则是:

奖金 = 基本工资 * 10%

个人所得税 =(基本工资 + 奖金) * 40%

为此我们要构造一个系统,满足中国企业的需要:(名称Softo)


/// <summary>
    /// 公用变量基本工资
    /// </summary>
    public class Constant
    {
        public static double base_salary = 4000;
    }
    /// <summary>
    /// 计算中国个人奖金
    /// </summary>
    public class ChinaBonus
    {
        public double Calculate()
        {
            return Constant.base_salary * 0.1;
        }
    }
    /// <summary>
    /// 计算个人所得税
    /// </summary>
    public class ChinaTax
    {
        public double Calculate()
        {
            return (Constant.base_salary + Constant.base_salary * 0.1) * 0.4;
        }
    }
View Code

相关文章:

  • 2022-12-23
  • 2021-09-29
  • 2021-09-07
  • 2021-05-22
  • 2021-10-19
  • 2021-08-23
  • 2021-08-13
猜你喜欢
  • 2021-07-13
  • 2021-10-16
  • 2021-09-11
  • 2021-11-17
  • 2021-06-07
  • 2021-09-02
相关资源
相似解决方案