Automated Dependency Injector

版本 1.0.0.0 (15.1 KB) 作者: Florian Schwaiger
Automated dependency injector class that works by inspecting constructor arguments.
31.0 次下载
更新时间 2018/6/22

Please read the full documentation at https://github.com/fschwaiger/matlab-dependency-injector.
This class automates the wiring of dependencies that are exposed in class constructors. It inspects the constructor argument names and finds appropriate dependencies via lookup files that you can define with each package. At any time, you can override dependencies, as shown in the example below.

% file +package/MyClass.m
classdef MyClass < handle
methods
function MyClass(firstDep, secondDep)
....
end
end
end

% file +package/InjectorConfig.m
classdef (Abstract, Hidden) InjectorConfig
properties (Constant)
firstDep = 'FirstDependencyClass'
end

methods (Static)
function value = secondDep()
value = 42;
end
end
end

% file application.m
instance = Injector().get(?package.MyClass);

% file unittest.m
firstDep = Mock(?package.FirstDependencyClass)
instance = Injector(firstDep).get(?package.MyClass);

Installation is really simple, you only need to copy a single file (Injector.m) to your project.

This class has been tested using newer versions of Matlab only (R2014b+), but it uses mostly standard tools that should be backwards compatible till R2009a. Please, if you find compatibility issues, notify me.

引用格式

Florian Schwaiger (2024). Automated Dependency Injector (https://github.com/fschwaiger/matlab-dependency-injector), GitHub. 检索来源 .

MATLAB 版本兼容性
创建方式 R2009a
兼容任何版本
平台兼容性
Windows macOS Linux
类别
Help CenterMATLAB Answers 中查找有关 Construct and Work with Object Arrays 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

example/+basic

example/+cascade

example/+direct

example/+interface

example/+provider

example/+singleton

example/+varargs

example/no_namespace

test

无法下载基于 GitHub 默认分支的版本

版本 已发布 发行说明
1.0.0.0

- updated description

要查看或报告此来自 GitHub 的附加功能中的问题,请访问其 GitHub 仓库
要查看或报告此来自 GitHub 的附加功能中的问题,请访问其 GitHub 仓库