zoukankan      html  css  js  c++  java
  • UML-设计模式-对一组相关的对象使用抽象工厂模式

    1、场景

    问题:

    javapos驱动,有2套,一套是IBM的,另一套是NCR的。如:

    使用IBM硬件时要用IBM的驱动,使用NCR的硬件时要用NCR的驱动。那该如何设计呢?

    注意,此处需要创建一组类(CashDrawer+CoinDispenser+...),并且每组类都事项相同的接口。

    解决:使用抽象工厂。

    2、抽象工厂

    抽象工厂模式的常见变体是创建一个抽象类工厂,使用单例类模式访问它,读取系统属性(比如,配置文件中存使用ibm还是ncr的参数以决定创建它的哪个子类工厂,然后返回对应的子类实现。如:java类库中的java.awt.Toolkit类就是为不同的操作系统和GUI子系统创建一组GUI小部件的抽象类的抽象工厂。

    应用程序如何才能知道应该使用哪个抽象工厂?IBMJavaPosDevicesFactory还是NCRJavaPosDevicesFactory?

    1)、基本抽象工厂

    根据读取的系统属性,表达式JavaPOSDevicesFactory.getInstance()将返回IBMJavaPosDevicesFactory或者NCRJavaPosDevicesFactory类的实例。如:属性文件中存储了
    jposfactory.classname=com.ncr.NCRJavaPosDevicesFactory,此时用的就是ncr的驱动。

    2)、抽象类的抽象工厂

  • 相关阅读:
    HTML初体验
    out传值
    函数
    冒泡排序
    数组
    异常语句
    类 string math
    for 穷举 迭代
    HTML JavaScript及运算符
    HTML 格式与布局
  • 原文地址:https://www.cnblogs.com/yaoyuan2/p/11603281.html
Copyright © 2011-2022 走看看