【发布时间】:2017-08-31 04:22:06
【问题描述】:
所以我有一个场景,值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 级消息传递和分层对象实例化。
但是实例化时对象之间的消息传递似乎是多余的。所以我想如果我创建一个单例类并且每个对象在单例中访问相同的值会更好吗?还是有更好的办法?
【问题讨论】:
-
您也可以将其视为上下文(对象中的数据位于该 id 的上下文中)。然后你可以有一些容器类型,其中存储了 id 和相关消息。
-
对不起,我没听懂。如果您能给我看一些代码示例,我将不胜感激。 :)
-
单例是一种反模式。它使代码无法测试,并防止多线程。传递 ID(或包含 ID 的上下文对象)很好。
-
因为我们在层次结构中的每个对象中传递相同的值。如果对象的层次结构有5-6级,通过context对象或者id传值会不会太麻烦?
-
也只有顶级对象(对象a)会设置id,其他人只会得到它
标签: design-patterns object-oriented-analysis message-passing