You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询:程序代码中<<use>>与<<create>>关系的示例

UML <> 和 <> 关系的代码示例

<>(使用依赖)关系

当类A需要借助类B的功能来完成自身业务逻辑时,两者形成<>依赖关系。常见表现包括:接收类B的实例作为方法参数、调用类B的实例方法或静态成员。

Java 代码示例

// 提供日志功能的被依赖类
public class Logger {
    public void record(String content) {
        System.out.println("[日志] " + content);
    }
}

// 依赖Logger完成业务的类
public class ProductService {
    public void addProduct(String productName, Logger logger) {
        // 执行核心业务逻辑
        System.out.println("新增商品:" + productName);
        // 使用Logger的功能完成日志记录
        logger.record("商品" + productName + "已成功添加");
    }
}

这里ProductService不具备日志记录能力,必须依赖Logger的实例来完成该操作,因此两者属于<>关系。

<>(创建依赖)关系

当类A负责创建类B的实例时,两者形成<>依赖关系。常见表现包括:在类A的方法中直接实例化类B、通过工厂方法返回类B的实例。

Java 代码示例1:工厂类创建实例

// 被创建的实体类
public class Order {
    private String orderId;

    public Order(String orderId) {
        this.orderId = orderId;
    }

    public String getOrderId() {
        return orderId;
    }
}

// 负责创建Order实例的工厂类
public class OrderFactory {
    public Order generateOrder(String orderId) {
        // 直接实例化Order类,形成<<create>>关系
        return new Order(orderId);
    }
}

OrderFactory专门负责Order实例的创建逻辑,其他类可通过该工厂获取Order对象,无需自行实例化,这是典型的<>关系。

Java 代码示例2:方法内直接创建实例

public class PaymentService {
    public void processPayment(String paymentId) {
        // 方法内部直接创建Order实例,同样属于<<create>>关系
        Order relatedOrder = new Order("关联订单_" + paymentId);
        System.out.println("处理支付:" + paymentId + ",关联订单:" + relatedOrder.getOrderId());
    }
}

PaymentService在自身业务方法中创建了Order的实例,以此完成支付与订单的关联逻辑,两者也构成<>关系。

内容的提问来源于stack exchange,提问作者Z.J

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 10:10:26