有多少书自相矛盾,让我抓狂。
Class A {} class B {void UseA(A a)} //some say this is an association,
no reference is held but communication is possible
Class A {} class B {A a;} //some say this is
aggregration, a reference is held
Run Code Online (Sandbox Code Playgroud)
但是很多人说持有引用仍然只是一个关联,并且为了聚合他们使用一个列表 - 恕我直言,这是一样的,它仍然是一个引用。
我很困惑,我想了解这个问题。
例如这里:http : //aviadezra.blogspot.cz/2009/05/uml-association-aggregation-composition.html - 强关联和聚合之间的区别是什么,在这两种情况下,作者都使用一个字段来存储引用。 .
另一个例子:这据说是关联:

这被称为聚合:

public class Professor {
// ...
}
public class Department {
private List<Professor> professorList;
// ..
}
Run Code Online (Sandbox Code Playgroud)
再次,有什么区别?它是两种情况下的参考
我读过您需要定义接口才能模拟类型,但我不确定如何解释它。
例如,要模拟 FileSystem,我可以将对象传递给该方法,然后在从测试调用时模拟它,而不是直接调用某些 I/O 方法。为什么单元测试示例(如下面的 SO 问题中的示例)使用接口?
void DoIt(IZipper zipper, IFileSystem fileSystem, IDllRunner runner)
{
string path = zipper.Unzip(theZipFile);
IFakeFile file = fileSystem.Open(path);
runner.Run(file);
}
Run Code Online (Sandbox Code Playgroud)
我不能简单地使用各自类型的参数,然后注入对象吗?
例如,在 GUICE 指南中,他们建议删除构造函数工作(例如,不要使用“new”关键字进行字段初始化),而是使用参数。
在状态机中,据说它只保存有关当前状态的信息,并根据输入转移到下一个状态。
有附加条件的情况呢,例如:
状态 A(输入 X)---> 状态 B
状态 B
(输入 X) AND (SomeValue>=100) ---> 状态 C
(输入 X) AND (SomeValue < 100) ---> 状态 D
这还是状态机吗?
我发现了矛盾的信息,其中一个说JMeter可以产生更多的负载然后LR可以,另一个说相反.据我所知(如果我们不考虑许可),每个LoadGenerator仅受硬件限制.但JMeter也是如此.文档对我没什么帮助.有没有人有这两种体验,所以他可以比较?我说的是2 000到4000个用户.谢谢
我正在考虑如何将此转换
List.Where(X=>X>5);为非lambda表达式代码.我无法弄清楚如何让Func在这里工作.
理解基数我遇到了很大的麻烦.
让我们说医生和他只能对一名病人进行心脏手术.当然有很多医生和很多病人,但模型应该是这样吗?
PACIENT-|----------|- DOCTOR meaning 1:1?
Run Code Online (Sandbox Code Playgroud)
难道不需要反映有很多医生和很多患者吗?或者这描述了两个实际实例之间的关系?
另一个例子:医院开展了一项实验,可以让许多患者参加药物试验.每项试验只测试一种药物,没有患者可以出现在一次以上的试验中.
TRIAL |- ------<-PATIENT (很多人 - 允许更多的患者参加试验)
PATIENT|------|-DRUG (1:1,如果一名患者只能服用一种药物)?
但是如何表明同一患者不能出现在任何其他试验中?或者,试验方面有1,试验与患者之间的关系是隐含的吗?
我有一个数组,其中填充了moment(数据库提供的日期)元素。我试图对数组进行排序,以便第一个元素是最旧的,最后一个元素是最新的,但是没有成功。
for (let item of items) {
dates.push(moment(item.created));
}
dates.sort(function(a,b){
var da = new Date(a).getTime();
var db = new Date(b).getTime();
return da < db ? -1 : da > db ? 1 : 0
});
}
console.log(dates);
Run Code Online (Sandbox Code Playgroud)
这总是打印当前时间乘以元素数。
我试图用lambda表达式替换以下语句:
List<ABC> l = new List<ABC>();
l.Find(delegate(ABC a) { return a.A == 4; });
Run Code Online (Sandbox Code Playgroud)
我试过了
l.Find((ABC a)=>a.A==4;);
Run Code Online (Sandbox Code Playgroud)
但这显然是不正确的.谢谢
我正在学习匿名方法,lambdas等,并且找不到它在这里不起作用的原因:
// this does not work
MyDictionary.Keys.Where(delegate(string s) { s.Length == 5; });
// this works
MyDictionary.Keys.Where(w => w.Length == 5);
Run Code Online (Sandbox Code Playgroud) 我认为委托字段就像其他字段一样,在实例化类之前我不能使用它们.然而:
class Program
{
delegate void lol (int A);
string myX;
static void Main(string[] args)
{
lol x = ... //works
myX //does not exist,
}
}
Run Code Online (Sandbox Code Playgroud) c# ×5
lambda ×3
aggregation ×1
associations ×1
class ×1
delegates ×1
diagramming ×1
erd ×1
field ×1
javascript ×1
jmeter ×1
loadrunner ×1
momentjs ×1
sorting ×1
testing ×1
theory ×1
uml ×1
unit-testing ×1