Inversify 和 Inversify-inject-decorators

inversify 和 inversify-inject-decorators

这是一个很好的例子,让您轻松理解如何反转和反转注入装饰词。

我将按照以下每个步骤改进代码:

第1步:普通课

public class cart{    private readonly idatabase _db;    private readonly ilogger _log;    private readonly iemailsender _es;    public cart()    {        _db = new database();        _log = new logger();        _es = new emailsender();    }    public void checkout(int orderid, int userid)    {        _db.save(orderid);        _log.loginfo("order has been checkout");        _es.sendemail(userid);    }}

登录后复制

第2步:应用依赖注入

public cart(idatabase db, ilogger log, iemailsender es){        _db = db;        _log = log;        _es = es; } //dependency injection simple way cart mycart = new cart(new database(),                   new logger(), new emailsender()); //when you want to change new class. update here mycart = new cart(new xmldatabase(),              new fakelogger(), new fakeemailsender());

登录后复制

第 3 步:应用依赖图绑定

//Create each InterfaceDIContainer.SetModule();DIContainer.SetModule();DIContainer.SetModule();DIContainer.SetModule();//MyCart just need to use itvar myCart = DIContainer.GetModule(); public Cart()    {        _db = DIContainer.GetModule();        _log = DIContainer.GetModule();        _es = DIContainer.GetModule();    }//When you want to change some module in Cart. Just need to change in where it define.DIContainer.SetModule();`

登录后复制

以上就是Inversify 和 Inversify-inject-decorators的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2672238.html

(0)
上一篇 2025年3月7日 13:23:38
下一篇 2025年3月1日 18:46:14

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 缓存

    向您介绍Encache!! 轻量级,易于为您的Nodejs服务器使用Async缓存库。 Encache 是作为 NPM 上可用的所有现有内存中易失性缓存库的下一个迭代而开发的,将其提升到一个全新的水平,同时保持简单性,因为整个缓存只需 4 …

    2025年3月7日
    000
  • 箭头函数和this

    这个 foo.baz() 的结果会是什么?? const foo = { bar: 10, baz: () => console.log(this.bar),};foo.baz(); 登录后复制 这个函数看起来应该可以工作,但是如果你…

    2025年3月7日
    200
  • 简化表单验证:React Hook 表单与传统方法

    表单验证是 web 开发的一个重要方面,可确保数据完整性并增强用户体验。在 react 生态系统中,我们看到了处理表单及其验证方式的重大演变。 在本博客中,我们将比较两种方法:传统表单验证和现代 react hook 表单库。 通过并排检查…

    2025年3月7日
    200
  • CSS(层叠样式表)对于设计网站前端至关重要

    让我们探索一些可用于增强 web 项目的常见 css 示例: 基本造型: 设置元素的背景颜色: .my-element { background-color: #f0f0f0; } 登录后复制 更改文字颜色: .my-text { colo…

    2025年3月7日
    200
  • 使用 Alpine JS 创建动态表

    本文探讨了使用轻量级 javascript 框架 alpine js 创建动态表。我们将把这个过程分为三个部分:页眉、正文和页脚,重点关注基本场景和复杂场景。 配置: html 结构: 我们从一个带有 x-data 指令的基本 html 元…

    2025年3月7日
    200
  • 在 Javascript 中使用此函数将字符串转换为驼峰命名法

    曾经需要将字符串转换为驼峰命名法吗?我在探索开源 supabase 存储库时发现了一个有趣的代码片段。这是他们使用的方法: function featuretocamelcase(feature: feature) { return fea…

    2025年3月7日
    200
  • 了解分支机构覆盖范围

    什么是分支机构覆盖范围?分支覆盖率是软件测试中使用的代码覆盖率度量,以确保给定代码段中的所有可能分支至少执行一次。这是一种衡量测试用例覆盖执行期间可以采取的不同路径的有效性的方法。• 重点:测试代码中的所有分支或决策点。• 目标:确保每个决…

    2025年3月7日
    200
  • 为什么 `formStateerrors` 会执行多次?

    问题:为什么 [formstate.errors](https://stackoverflow.com/a/78820591/23066581) 执行多次?回答:当使用 react hook form 和 formstate.errors …

    2025年3月7日
    200
  • JavaScript 数组

    什么是数组? 数组是一种存储有序元素集合的数据结构。在 javascript 中,数组被归类为一种特殊类型的对象,可以存储数字、字符串、对象或其他数组。数组中的元素括在方括号 [ ] 中并使用从零开始的索引。从零开始的索引意味着数组的第一个…

    2025年3月7日
    200
  • 如何从 HTML 字符串创建 DOM 元素(多种方法)

    当我们需要创建简单的动态 html dom 元素时,我们可以使用 html 字符串模板。在 javascript 中有很多不同的方法可以实现这一点,但我们可能有一些考虑。 内部html const container = document.…

    2025年3月7日 编程技术
    200

发表回复

登录后才能评论