草庐IT

multi-injection

全部标签

c++ - C++ 中构造函数注入(inject)的高级配置

我的问题是专门处理通过构造函数的依赖注入(inject)。我了解服务定位器模式、构造函数/setter注入(inject)及其风格的优缺点,但是在选择纯构造函数注入(inject)后,我似乎无法克服一些问题。在阅读了许多关于可测试设计的资料后,包括仔细阅读MiškoHevery的博客(特别是this帖子)后,我处于以下情况:假设我正在编写一个C++程序,并且我已经通过它们的构造函数正确地注入(inject)了我的依赖项。为了可读性,我给了自己一个高级对象,它有一个从main调用的Execute()函数:intmain(intargc,char*argv[]){MyAwesomeProg

java - 我是否应该使用依赖注入(inject)以获得良好的设计和可测试的代码?

我有一个表示图像的类:它称为Photography。构造函数如下所示:Photography::Photography(QStringoriginalPath,QStringappDirectory){this.originalPath=originalPath;this.appDirectory=appDirectory;}该类包含许多方法,如getTitle()、getCaption()、getSize()、isHorizo​​ntal()等有一个名为getThumbnailPath()的public方法,如下所示:QStringPhotography::getThumbnailP

c++ - 为什么会有注入(inject)的类名?

最近,我看到了一个奇怪的C++特性:注入(inject)类名。classX{};Xx1;classX::Xx2;//classX::XisequaltoXclassX::X::Xx3;//...andsoon...但我不明白为什么需要此功能。是否有任何实践需要此功能?而且我听说旧C++中不存在此功能。那么,它是什么时候推出的呢?C++03?C++11? 最佳答案 注入(inject)的类名表示X被声明为X的成员,所以里面的名字查找X总是找到当前类,而不是另一个X可能在相同的封闭范围内声明,例如voidX(){}classX{publ

c++ - boost multi_index : retrieve unique values of a non-unique key

我有一个boost::multi_index_container其元素是这样的结构:structElem{Aa;Bb;Cc;};主键(在数据库意义上)是a和b的composite_key。其他键的存在是为了执行各种类型的查询。我现在需要检索一组c的所有不同值。这些值是无论如何不是唯一的,而是遍历所有条目(尽管是有序的),或者使用std::unique似乎很浪费,考虑到c的不同值的数量预计将我是否缺少更有效地获得此结果的简单方法? 最佳答案 我搜索了Boost.MultiIndex文档,但似乎无法找到一种方法来执行您想要的操作。我很想

c++ - 将函数注入(inject)子类

是否可以在C++14中做这样的事情。我有一个基类如下:#includeclassAbstractElement;classConcreteElement;classSuperConcreteElement;classB{public:voidbar(AbstractElement*){std::coutfoo();//PrintsConcreteelement}正如您在//1和//2中看到的,函数的主体完全相似。但是我不能完全将它移动到基类中,因为取决于this的静态类型。尽管如此,每次我需要添加AbstractElement的子类时,我都不想编写完全相同的代码。因此,我需要某种机制来

Angular 17+ 高级教程 – Dependency Injection 依赖注入

前言本来是想先介绍AngularComponent的,但Component里面会涉及到一些DependencyInjection(简称DI)的概念,所以还是先介绍DI吧。温馨提醒:如果你对JSclass、prototype不太熟悉的话,建议你先看这篇 JavaScript–理解Object,Class,This,Prototype,Function,Mixins 什么是 DependencyInjection?何谓依赖?classServiceA{plus(num1:number,num2:number){returnnum1+num2;}}首先我们有一个classServiceA,它有一个p

c++ - DLL注入(inject)记事本

我想在记事本中显示一个消息框,所以我找到了一个简单的dll注入(inject)示例。注入(inject)器本身不是我的并且似乎工作正常(获取进程的id,创建一个远程线程,获取dll文件的绝对路径)。我认为问题在于dll的实现。项目在没有任何警告的情况下编译,但没有达到预期的结果。你能看一下并帮助我理解问题吗?(我已经把发布版本的dll放到了injector项目文件夹中)dllmain.cpp://dllmain.cpp:DefinestheentrypointfortheDLLapplication.#include"stdafx.h"#include"dll.h"#include#i

c++ - 现代编译器可以在使用依赖注入(inject)时去虚拟化函数调用吗

当您希望您的代码可测试时,依赖注入(inject)是一种非常重要的模式,它一直在大型C++项目中使用。这是一个简单的例子://Copyright2019GoogleLLC.//SPDX-License-Identifier:Apache-2.0classFooInterface{public:virtualvoidf()=0;virtual~FooInterface()=default;};classFoo:publicFooInterface{public:voidf()override{/*Actualwork*/}};classMockFoo:publicFooInterface

c++ - boost::spirit 1.53 multi_pass iterator相关的编译错误

代码:typedefstd::string::const_iteratoriterator;namespaceparsers{namespacespirit=::boost::spirit;namespaceascii=::boost::spirit::ascii;namespacephoenix=::boost::phoenix;spirit::qi::ruleaction_parser='"'>spirit::qi::lit("action")>spirit::qi::labels::_r1>'"';}错误:>1>CL:warning:Thisheaderisdeprecated.

c++ - 如何使用 doxygen 记录好友注入(inject)功能?

给定如下示例中的一些代码:classMyClass;classInjector{/***@briefMyClassaddition.*/friendMyClassoperator+(MyClassa,MyClassb){...}};classMyClass:privateInjector{};如何让doxygen在MyClass类的文档页面包含operator+()的文档?从功能上讲,它显然属于那里。是否有一些通用方法可以通过ADL提供doxygen文档功能?现实世界中的一个有用示例:我希望doxygen包含boost/operators.hpp中的基类提供的运算符。