zoukankan      html  css  js  c++  java
  • 设计模式(二)抽象工厂模式 狼

    以下所有数据位伪造:O(∩_∩)O哈哈~!!

    业务逻辑:以同一系统适应美国、中国的工资计算方式,计算公式是:到手的工资=基本工资+奖金-税收;

    如中国的工资计算是 到手的工资=基本工资+奖金-税收;

    税收=基本工资*5%;奖金=企业自己的计算方式

       美国的工作计算是:税收=(基本工资*10%+奖金)*25%;奖金=美国企业自己的计算方式;

    所有虽然工资计算的总公式相同(到手的工资=基本工资+奖金-税收),但具体的工资计算方式却不同。所以总公式就可以抽象。

    系统代码逻辑解释:

    一:Constant负责提供所有的基本数据。这里只是基本工资和具体反射那个类。2个税收的比例计算为多余,暂时不用。

    二:抽象工厂负责抽象高级的业务逻辑。为具体工厂提供抽象方法和具体要创建那个工厂。

    三:具体工厂实现,抽象工厂中的2二个抽象类。该工厂负责实例化,返回具体的奖金计算类、和税收计算类。

    四:具体的税收计算类,负责计算方法,计算完成后返回一个结果。

    五:接口的定义,抽象了的税收计算和奖金计算方式,实现统一的接口暴露给客户端。。因为工厂返回具体的类,类的方法返回具体的计算类。而计算类有统一遵循了相同的接口。所以可以端的调用不变。

    六:client客户端调用类。

    七:抽象工厂,中有2个抽象方法 分别是creatBons(计算奖金)、CreateTax(计算税收);一个工厂方法,根据配置文件,用反射来,来实现具体实例化那一个类。

    然后具体的工厂,实现creatBons(计算奖金)、CreateTax(计算税收)的接口,这二个接口实例化返回一个具体的税收计算方法和奖金计算方法。

    在客户端Cliet直接调用抽象工厂:     IBons bons = AbstractFactory.GetInstance().CreatBons();ITax tax = AbstractFactory.GetInstance().CreatTax();

    因为抽象工厂返回的是一个具体的工厂类,并且该类下的CreatBons、和CreatTax都实现了接口Ibons、和ITax、所以可以直接调用该方法。就可以直接计算奖金和税收了。

  • 相关阅读:
    开源的UML建模工具
    leetcode 559. Maximum Depth of N-ary Tree
    leetcode 9. Palindrome Number
    暗网 tor溯源困难根因——用户的请求会在分布全球的主机随机跳转三次,最终才到达服务器,这就造成了溯源的极其困难
    leetcode 374. Guess Number Higher or Lower
    RDP协议暴力破解
    清华大学 pip 源
    暴力破解研究论文
    利用ModSecurity防御暴力破解
    IRC BOT原来是利用IRC下发C&C命令——在xx云环境遇到了,恶意软件开的是6666端口
  • 原文地址:https://www.cnblogs.com/gowhy/p/2000550.html
Copyright © 2011-2022 走看看