文件交换的选择

我们最好的用户提交

医生,我需要一个依赖项注入吗?

格雷格本周的选择MATLAB依赖注入通过马特·麦克唐纳

想象你想构建一个应用程序,礼服你在早上。

你穿什么在任何一天将取决于天气。如果下雨了,你可能穿雨衣,雨靴,带伞。如果是阳光明媚你可能不穿一件夹克,穿运动鞋,和雨伞。

如何构建一个应用程序,这个应用程序可以执行正确的操作与大量不同的场景。

一个方法可以应用依赖注入。

内容

依赖Whaaaaa吗?

“依赖注入技术构造一个应用程序的组件不需要单个组件与其他组件的特定实现。”

我偷了这个的文档的顶部的“demo_mdepin”功能文件交换条目。

但是等待…,即使是什么意思?

基本上这是指软件插件的概念。你有一个通用的应用程序代码所定制的应用不同的具体实现。

这使您能够根据选择标准配置应用程序,它是下雨了。

组件的模块化和独立的性质还支持更简化的测试策略。

你之前看过这个地方

你可能会想“嗯,这似乎像使用函数处理在MATLAB。”

如果isRaining coatFunction = @putOnRainSlicker;其他的coatFunction = @putOnSequinedJeanJacket;结束
getDressed (coatFunction);

依赖注入本身不仅仅是通过在处理不同的功能。然而上述说明了关键概念,可以实现不同通过一些配置决定调用哪个函数。

但是你不只是改变这外套你穿着的时候下雨了。你可能会有完全不同的服装的需求取决于天气。

更有可能你会做些什么:

配置=结构();config.dressForRain。getDressed = {“putOnRainSlicker”“putOnRainBoots”“grabUmbrella”};config.dressForRain。putOnRainSlicker = putOnJacket (“rainSlicker”);config.dressForRain。putOnRainBoots =config.dressForRain。grabUmbrella =config.dressForSun。getDressed = {“putOnSequinedJeanJacket”“putOnSneakers”};config.dressForSun。putOnSequinedJeanJacket = putOnJacket (“jeanJacket”);配置。putOnJacket =
如果isRaining装= assembleOutfit(配置,“dressForRain”);其他的衣服= assembleOutfit(配置,“dressForSun”);结束
getDressed(服装);

生成的对象的“组织”是一个独特的方法和属性的集会,取决于天气的状态。如果下雨了“服装”对象将有一个方法来“grabUmbrella”否则衣服不会有任何方法获得一把雨伞。甚至可以共享组件的一些元素,如“putOnJacket”。这是非常灵活的,只要你有一个“getDressed”方法。

为什么我选择这个文件交换条目

我之前从未听说过依赖注入来在这个文件条目的交流。虽然我已经见过和经历过很多次,我没有真正理解发生了什么。

所以我想和你分享我的学习经验。

这个条目的文档有一些优秀的框架是如何使用的例子。它还指出,一些很好的文章描述依赖注入比我可以更好。

你使用依赖注入吗?

让我们知道如果这是你使用的东西。在MATLAB ?在其他编程语言吗?

你可以提交一个回应这篇文章在这里




使用MATLAB®8.6发表

|

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。