Java 在执行业务功能时收集数据的对象模式
我有一个执行业务函数的类,入口点方法调用多个方法Java 在执行业务功能时收集数据的对象模式,java,design-patterns,Java,Design Patterns,我有一个执行业务函数的类,入口点方法调用多个方法 public class Tool { public void runTool() { methodA(); methodB(); methodC(); printToolSummary(); } } 调用的每个方法method*都执行一个特定的子函数,我想将每个方法中感兴趣的结果/属性收集到一个摘要对象中。这些method*方法返回的不是单个
public class Tool
{
public void runTool()
{
methodA();
methodB();
methodC();
printToolSummary();
}
}
调用的每个方法method*
都执行一个特定的子函数,我想将每个方法中感兴趣的结果/属性收集到一个摘要对象中。这些method*
方法返回的不是单个值
我想到了一个包含所有感兴趣的属性的单一对象,将此对象传递给每个方法并让该方法设置属性,但不知何故,使用可变对象听起来并不正确,因为无法阻止methodA更新不应该更新的属性,还是我担心得太多了?使用一个包含每个方法的子类的复杂对象怎么样。例如:
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;
}
使用包含每个方法的子类的复杂对象如何。例如:
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;
}
如果您担心方法会触及对象的某些不应该触及的部分,那么您传递给这些方法的对象应该实现多个接口,每个接口只公开希望acting方法触及的属性 所以methodA可以预期一个类型为a的类,methodB可以预期一个类型为B的类,其中a和B是接口
否则,您的方法实际上没有什么问题,这是很常见的。如果您担心方法会触及对象的某些不应该触及的部分,那么您传递到方法中的对象应该实现多个接口,每个接口只暴露您希望代理方法触及的属性触摸 所以methodA可以预期一个类型为a的类,methodB可以预期一个类型为B的类,其中a和B是接口
否则,您的方法实际上没有什么问题,这是很常见的。不确定您担心的是什么-“读取一致性视图”可能是数据库术语。为什么不构建一个摘要对象,然后在显示的级别上填充它,并使用任何get函数的结果。不确定您担心的是什么-“读取一致性视图”可能是数据库术语。为什么不构建一个summary对象,然后在显示的级别上用get函数的结果填充它呢。