public class Testing //main app class
{
public static void main(String[] args)
{
//create instances
Customer c = new Customer(...);
Supplier s = new Supplier(...);
Project p = new Project(123, "abc", "qwerty", "asas", c, s);
Invoice i = new Invoice(789, p, "asas", true);
Calculation cost = new Calculation();
cost.calculateCost(i,p);
Helper h = new Helper();
h.printFile(i,p,cost);
}
}对于上面的类,可以看到项目使用customer和parameter作为其构造器参数。接下来,整个项目对象也会作为其构造函数参数抛到into类中,这将创建一个唯一的发票。
接下来,还有另外两个类,Calculation.java和Helper.java,它们分别接受(发票、项目)&(发票、项目、计算)为其正常的方法参数。
在这种情况下,我说的对吗?通过构造函数参数或普通类参数传递数据意味着它们与所接收的类协作吗?
这就是:
辅助对象
打印发票
。-项目
。-计算
或者是相反的情况?
那就是..。相反,项目与Helper.java协作吗?
最后,在我的程序设计中,上述编码方式是否意味着低耦合或高耦合?
发布于 2013-11-19 13:34:56
我不认为这些问题有任何硬性的答案。对我来说,关于一个对象是否与另一个对象协作的决定是考虑第一个对象是否使用第二个对象,而不是第二个对象是否是第一个对象的一部分或相关对象。
因此,发票上有许多行项目--我不会称它们为协作者,而是部分。但是,使用另一个对象来完成其工作的东西是使用一个协作者。
我不认为CRC卡解释得很好。可能非常有用的是关注价值对象、实体和服务之间的差异--我认为域驱动的设计非常关注这一点。此外,在伦敦学校或Mockist TDD上进行Google搜索,这完全是为了构建松散耦合的系统,其中对象委托给其他对象(它们的合作者)。
这东西很微妙,但你走的路是对的。
https://stackoverflow.com/questions/20071052
复制相似问题