Java实现商品预约功能

1. 简介

在本文中,我将向你介绍如何使用Java实现商品预约功能。商品预约是指用户可以在系统中预约某个商品,一旦该商品可以购买时,系统会通知用户。以下是实现该功能的步骤及代码示例。

2. 实现步骤

步骤 描述
1 创建商品类
2 创建用户类
3 创建预约类
4 实现商品预约功能

3. 代码示例

3.1 创建商品类

首先,我们需要创建一个商品类来表示需要预约的商品。代码示例如下:

public class Product {
    private String name;
    private boolean isAvailable;

    public Product(String name) {
        this.name = name;
        this.isAvailable = false;
    }

    public String getName() {
        return name;
    }

    public boolean isAvailable() {
        return isAvailable;
    }

    public void setAvailable(boolean available) {
        isAvailable = available;
    }
}

上述代码中,我们定义了一个商品类Product,包含了商品的名称和是否可用的状态。商品初始状态为不可用,当商品可以购买时,我们将通过设置isAvailable属性来更新商品状态。

3.2 创建用户类

接下来,我们需要创建一个用户类来表示预约商品的用户。代码示例如下:

public class User {
    private String name;
    private List<Product> subscribedProducts;

    public User(String name) {
        this.name = name;
        this.subscribedProducts = new ArrayList<>();
    }

    public String getName() {
        return name;
    }

    public List<Product> getSubscribedProducts() {
        return subscribedProducts;
    }

    public void subscribeProduct(Product product) {
        subscribedProducts.add(product);
    }

    public void unsubscribeProduct(Product product) {
        subscribedProducts.remove(product);
    }
}

上述代码中,我们定义了一个用户类User,包含了用户的姓名和已预约商品的列表。用户可以通过subscribeProduct方法来预约商品,并通过unsubscribeProduct方法来取消商品预约。

3.3 创建预约类

接下来,我们需要创建一个预约类来管理商品预约的功能。代码示例如下:

public class Reservation {
    private List<User> users;

    public Reservation() {
        this.users = new ArrayList<>();
    }

    public void addUser(User user) {
        users.add(user);
    }

    public void removeUser(User user) {
        users.remove(user);
    }

    public void notifyUsers(Product product) {
        for (User user : users) {
            List<Product> subscribedProducts = user.getSubscribedProducts();
            if (subscribedProducts.contains(product)) {
                System.out.println("通知用户:" + user.getName() + ",商品" + product.getName() + "现在可以购买了!");
            }
        }
    }
}

上述代码中,我们定义了一个预约类Reservation,用于管理用户的预约功能。预约类包含了一个用户列表,可以通过addUser方法来添加用户,通过removeUser方法来移除用户。notifyUsers方法用于通知所有预约了某个商品的用户。

3.4 实现商品预约功能

最后,我们需要实现商品预约功能。代码示例如下:

public class Main {
    public static void main(String[] args) {
        // 创建商品
        Product product = new Product("iPhone 12");

        // 创建用户
        User user1 = new User("小明");
        User user2 = new User("小红");

        // 创建预约
        Reservation reservation = new Reservation();

        // 添加用户到预约
        reservation.addUser(user1);
        reservation.addUser(user2);

        // 用户预约商品
        user1.subscribeProduct(product);
        user2.subscribeProduct(product);

        // 设置商品可用状态,并通知用户
        product.setAvailable(true);
        reservation.notifyUsers(product);

        // 输出用户预约信息
        System.out.println(user1.getName() + "预约了:" + user1.getSubscribedProducts());
        System.out.println(user2.getName() + "预约了:" + user2.getSubscribedProducts());
    }
}

以上代码演示了如何创建商品、用户和预约,并实现商品预约功能。在main方法中,我们先创建了一个商品对象和两个用户对象。然后将用户添加到预约对象中,并让用户预约商品。当商品可用时,调用notifyUsers方法通知预约了该商品的用户,并输出用户的预