某单据管理系统中要求实现对采购、销售、库存的单据管理,系统的采购类的单据中有如采购单、收货单、应付帐单、付款单和退货单等,现使用抽象工厂方法设计模式设计该系统。画出UML图
时间: 2024-05-06 07:21:44 浏览: 219
抱歉,作为AI语言模型,我无法画图。但我可以给你提供文字描述:
根据需求,我们可以先定义一个单据接口(Bill),其中包含了常见的单据属性,如单据号(billNo)、单据类型(billType)、单据日期(billDate)等。然后,我们定义一个抽象工厂接口(AbstractFactory),其中包含了三个工厂方法,分别是采购类单据工厂(PurchaseFactory)、销售类单据工厂(SalesFactory)和库存类单据工厂(StockFactory),用于创建不同类型的单据。
采购类单据工厂(PurchaseFactory)可以创建如下几种单据:
- 采购单(PurchaseBill)
- 收货单(ReceiptBill)
- 应付账单(PayableBill)
- 付款单(PaymentBill)
- 退货单(ReturnBill)
销售类单据工厂(SalesFactory)可以创建如下几种单据:
- 销售单(SalesBill)
- 发货单(DeliveryBill)
- 应收账单(ReceivableBill)
- 收款单(ReceiptBill)
- 退货单(ReturnBill)
库存类单据工厂(StockFactory)可以创建如下几种单据:
- 入库单(InStockBill)
- 出库单(OutStockBill)
- 库存调拨单(StockTransferBill)
- 库存盘点单(StockCheckBill)
以上所有单据都实现了单据接口(Bill),并通过具体工厂类的创建方法进行创建。使用抽象工厂方法设计模式可以有效地避免直接实例化具体类,同时也方便了系统的扩展和维护。
UML图:
```
+-----------+ +------------------------+
| Bill | | AbstractFactory |
+-----------+ +------------------------+
| billNo | | createPurchaseBill() |
| billType | | createSalesBill() |
| billDate | | createStockBill() |
| ... | +--------------------+
+-----------+ | Factory |
+--------------------+
| createPurchaseBill() |
| createSalesBill() |
| createStockBill() |
+--------------------+
| |
+------+-------+ |
| PurchaseBill | |
| ReceiptBill | |
| PayableBill | |
| PaymentBill | |
| ReturnBill | |
+--------------+ +--------------+
| | | SalesBill |
| | | DeliveryBill|
| | |ReceivableBill|
| | | ReceiptBill |
| | | ReturnBill |
+--------------+ +--------------+
| | | |
| InStockBill OutStockBill StockTransferBill|
| | | |
+--------------+ +--------------+
```
阅读全文