如果需要在许多对象之间传递值,哪种消息传递方法是合适的?

时间:2017-08-31 04:22:07

标签: design-patterns object-oriented-analysis message-passing

所以我有一个场景,其中值id需要在不同的对象之间传递,但每个对象的实例化是按层次顺序排列的。

例如:

ObjA 
  - Gets and id from web service
  Instantiate ObjB - (Obj A passes id to Obj B while instantiating)
     - Obj B instantiates Obj C (Obj B passes id to Obj C while instantiating)

它继续5-6级消息传递和分层对象实例化。

但实例化时在对象之间传递消息似乎是多余的。所以我想如果我创建一个单例类并且每个对象在单例中访问相同的值会更好吗?或者有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

也许所有对象都可以扩展一个公共接口。让我们说

Interface SomeObject{}

现在位于最顶层,您可以创建一个列表

final List<SomeObject> objects = Arrays.asList(new Object1(), new Object2() and so on);

现在,当您获得ID时,您可以运行(如果这很重要,使用此列表也将保持设置ID的顺序。

for(SomeObject obj: objects){
    obj.setId(ID);
}

或者你可以使用一个流来用更少的代码完成它。