用Java代码实现 多个单据号存放在一个数组里面,判断某单据号是否存在数组里
时间: 2023-06-19 07:06:39 浏览: 98
可以使用以下代码实现:
```java
public static boolean isExist(String[] array, String target) {
for (String s : array) {
if (s.equals(target)) {
return true;
}
}
return false;
}
```
其中,`array` 是存放单据号的数组,`target` 是要查找的单据号。通过遍历数组,逐个比较数组中的元素和目标单据号是否相等,如果相等则返回 `true`,否则继续遍历直到数组末尾,最终返回 `false` 表示目标单据号不存在于数组中。
相关问题
java 设计模式设计多张单据审批
在Java中,设计模式是一种被广泛应用的软件设计思想,它提供了一套解决常见问题的经验总结和最佳实践。对于多张单据审批的设计,可以使用以下几种设计模式:
1. 责任链模式(Chain of Responsibility Pattern):该模式将请求的发送者和接收者解耦,形成一个处理请求的链条。每个处理者都有机会处理请求,直到有一个处理者能够处理为止。在多张单据审批中,可以将每个审批人作为一个处理者,根据审批人的权限和审批金额来决定是否能够处理该单据。
2. 策略模式(Strategy Pattern):该模式定义了一系列算法,并将每个算法封装成独立的类,使得它们可以互相替换。在多张单据审批中,可以将不同的审批策略(如按金额、按类型等)封装成不同的策略类,根据具体的审批需求选择相应的策略进行审批。
3. 观察者模式(Observer Pattern):该模式定义了一种一对多的依赖关系,当一个对象状态发生改变时,所有依赖它的对象都会得到通知并自动更新。在多张单据审批中,可以将审批人和单据作为观察者和被观察者,当单据状态改变时,通知相关的审批人进行审批。
4. 状态模式(State Pattern):该模式允许对象在内部状态改变时改变它的行为。在多张单据审批中,可以将每个单据的状态(如待审批、已通过、已拒绝等)作为一个状态类,根据不同的状态来执行相应的审批操作。
某单据管理系统中要求实现对采购、销售、库存的单据管理,系统的采购类的单据中有如采购单、收货单、应付帐单、付款单和退货单等,现使用抽象工厂方法设计模式设计该系统1、画出UML类图 2、实现代码
抽象工厂方法设计模式是一种工厂方法的扩展,其目的是提供一个创建一系列相关或依赖对象的接口,而无需指定它们具体的类。在这个问题中,我们可以在采购、销售和库存这三个类别中实现一个抽象工厂,它们都可以生产不同的单据类型。UML类图如下:
![UML类图](https://img-blog.csdn.net/20160304174104181)
首先,我们需要有一个抽象的单据工厂类,来定义不同单据的创建方法。然后,我们需要分别实现采购、销售和库存类别的工厂类,每个工厂类分别负责生产对应类别的单据。最后,我们需要实现每种单据的具体类。
```java
// 抽象的单据工厂类
public abstract class BillFactory {
public abstract PurchaseBill createPurchaseBill();
public abstract SalesBill createSalesBill();
public abstract InventoryBill createInventoryBill();
}
// 采购类别的单据工厂类
public class PurchaseBillFactory extends BillFactory {
public PurchaseBill createPurchaseBill() {
return new PurchaseBill();
}
public SalesBill createSalesBill() {
return null;
}
public InventoryBill createInventoryBill() {
return null;
}
}
// 销售类别的单据工厂类
public class SalesBillFactory extends BillFactory {
public PurchaseBill createPurchaseBill() {
return null;
}
public SalesBill createSalesBill() {
return new SalesBill();
}
public InventoryBill createInventoryBill() {
return null;
}
}
// 库存类别的单据工厂类
public class InventoryBillFactory extends BillFactory {
public PurchaseBill createPurchaseBill() {
return null;
}
public SalesBill createSalesBill() {
return null;
}
public InventoryBill createInventoryBill() {
return new InventoryBill();
}
}
// 具体的采购单据
public class PurchaseBill {
// TODO: 实现采购单据的相关逻辑
}
// 具体的销售单据
public class SalesBill {
// TODO: 实现销售单据的相关逻辑
}
// 具体的库存单据
public class InventoryBill {
// TODO: 实现库存单据的相关逻辑
}
```
现在,我们可以通过不同的单据工厂类来创建不同的单据类型,并且每个工厂类只生产对应类别的单据。例如,通过采购单据工厂类来创建采购单、收货单、应付账单、付款单和退货单等采购类的单据。
```java
BillFactory factory = new PurchaseBillFactory();
PurchaseBill purchaseBill = factory.createPurchaseBill();
// TODO: 使用采购单做一些操作
ReceivingBill receivingBill = factory.createReceivingBill();
// TODO: 使用收货单做一些操作
PayableBill payableBill = factory.createPayableBill();
// TODO: 使用应付账单做一些操作
PaymentBill paymentBill = factory.createPaymentBill();
// TODO: 使用付款单做一些操作
ReturnBill returnBill = factory.createReturnBill();
// TODO: 使用退货单做一些操作
```
当我们需要添加新的单据类型时,只需实现对应的单据类和工厂类即可,不会影响到整个系统的架构。抽象工厂方法可以让我们更加灵活高效地设计和维护系统。
阅读全文