0

我有一个执行业务功能的类,并且入口点方法调用了多个方法。

public class Tool
{
     public void runTool()
     {
         methodA();
         methodB();
         methodC();
         printToolSummary();
     }
}

这些方法中的每一个都method*执行一个特定的子功能,我想将这些方法中的每一个中感兴趣的结果/属性收集到一个摘要对象中。method*它不是由这些方法返回的单个值。

我在考虑一个包含所有感兴趣属性的单个对象,将此对象传递给每个方法并让该方法设置属性,但不知何故,使用可变对象听起来不正确,因为没有办法阻止方法A 从更新它不应该的属性,还是我太担心了?

4

2 回答 2

4

如果您担心方法会触及他们不应该触及的对象的某些部分,那么您传递给方法的对象应该实现多个接口,每个接口只公开您希望代理方法触及的属性。

因此,methodA 可以期望 A 类型的类,而 methodB 可以期望 B 类型的类,其中 A 和 B 是接口......

否则,您的方法并没有什么问题,而且相当普遍。

于 2013-05-20T20:50:21.560 回答
1

如何使用包含每个方法的子类的复杂对象。例如:

public class ResultA { // some attributes for Method A }

public class ResultB { // some attributes for Method B }

public class ResultC { // some attributes for Method C }


public class Result {

    private ResultA resultA;
    private ResultB resultB;
    private ResultC resultC;
}
于 2013-05-20T20:50:09.903 回答