【每周一库】- shaku - 依赖注入/容器库

本文介绍了Shaku,一个依赖注入库,用于帮助结构化应用程序并实现依赖倒置。通过继承shaku的接口特征,标记组件,表达依赖关系,并注册组件,可以轻松管理应用程序中的依赖。文中提供了一个入门示例,展示了如何注册组件、传入参数和解析组件,强调了依赖注入带来的代码复用和单元测试等优势。
摘要由CSDN通过智能技术生成

想必做过中型以上工程项目的小伙伴都听说过依赖倒置、控制反转、依赖注入等软件工程概念。能够熟悉使用抽象与依赖倒置在工程开发上会有很多好处,比如提高代码复用性、实现真正的单元测试、减少修改模块的必要等。这次为大家介绍一个Rust中辅助依赖注入的库。

shaku

Shaku 是一个依赖注入库。亦可单独直接使用也可与其他应用框架整合使用,比如Rocket (请参照 shaku_rocket).

入门

注意: 本入门指南重点介绍在应用程序(或技术上说,容器)的整个生命周期内都有效的组件。阅读此入门指南后,请查看provider模块,以了解如何创建寿命较短的服务。

结构化你的应用程序

从应用程序的结构和特征开始。使用Arc作为依赖项。

use std::sync::Arc;

trait IOutput {
    fn write(&self, content: String);
}

trait IDateWriter {
    fn write_date(&self);
}

struct ConsoleOutput;

impl IOutput for ConsoleOutput {
    fn write(&self, content: String) {
        println!("{}", content);
    }
}

struct TodayWriter {
    output: Arc<dyn IOutput>,
    today: String,
    year: usize,
}

impl IDateWrite
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值