![]() |
1
5
在选项(a)中,您正在创建所谓的函数对象或函数,这是一个设计模式,即 well documented . 两个主要优势是:
另外,如果您使用的是依赖注入框架(Spring、Guice等),那么函数可以在需要时自动初始化和注入。 函数对象在库中广泛使用,例如C++标准模板库 |
![]() |
2
6
样本集1
样本集2
|
![]() |
3
2
另一种选择是案例A的变体,如下所示: class SampleClass3 { SampleClass3( IWorker workerA, IWorker workerB ); WorkResult doWork(); } 优势:
缺点:
|
![]() |
4
1
如果有多个方法依赖于iWorker A和iWorker B,我就说是do sample A。 如果只有doWork()同时使用iWorker A和iWorker B,则执行示例B。 另外,你的样品班的真正目的是什么?DoWork看起来有点像实用方法mroe。 |
![]() |
5
1
a)是一个糟糕的设计,因为它允许对象有缺陷(可能未设置一个或两个工人类)。 b)可以是好的。如果不依赖于sampleClass2的内部状态,则将其设为静态 |
![]() |
6
0
另一种选择: 工人阶级: 静态工作结果工单(工单A、工单B); |
![]() |
7
0
IMO第二种方法看起来更好,它要求调用者使用更少的代码来执行任务。第二种方法不太容易出错,调用者不必担心对象可能没有完全初始化。 |
![]() |
8
0
不如定义一个
|