Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oop 两个对象交互的设计模式_Oop_Design Patterns_Interaction - Fatal编程技术网

Oop 两个对象交互的设计模式

Oop 两个对象交互的设计模式,oop,design-patterns,interaction,Oop,Design Patterns,Interaction,我有两个对象,ObjectA和ObjectB。ObjectA需要调用ObjectB上的事件。我一直在寻找一个好的设计模式来允许ObjectA这样做,因为我不想让任何人公开公共方法来做这件事,然而ObjectA确实需要完成触发这些事件的工作 有没有一个好的模式,或者有什么建议 谢谢。如果一个对象需要从另一个类调用方法,那么从一开始就不是一个好的设计。如果一个对象需要从另一个类调用方法,那么从一开始就不是一个好的设计 ObjectA需要调用ObjectB上的事件 你描述它的方式听起来像是A向B发送命

我有两个对象,ObjectA和ObjectB。ObjectA需要调用ObjectB上的事件。我一直在寻找一个好的设计模式来允许ObjectA这样做,因为我不想让任何人公开公共方法来做这件事,然而ObjectA确实需要完成触发这些事件的工作

有没有一个好的模式,或者有什么建议


谢谢。

如果一个对象需要从另一个类调用方法,那么从一开始就不是一个好的设计。

如果一个对象需要从另一个类调用方法,那么从一开始就不是一个好的设计

ObjectA需要调用ObjectB上的事件

你描述它的方式听起来像是A向B发送命令,这使得命令模式成了一个常见的嫌疑

此外,在A和B之间建立亲密接触的方法可能会变得非常复杂,足以证明建立一个单独的对象C来调解他们的交互-中介模式是合理的

ObjectA需要调用ObjectB上的事件

你描述它的方式听起来像是A向B发送命令,这使得命令模式成了一个常见的嫌疑

同时,A和B之间建立亲密接触的方式可能变得复杂,足以证明建立一个单独的对象C来调解它们的相互作用——中介模式< /P> < P>。当一个对象需要从另一个对象接收通知时,通常使用此选项

也许考虑一下。当一个对象需要从另一个对象接收通知时,通常使用此选项


更具体地描述问题将有助于我们更好地了解您真正需要什么。从你的描述来看,这只是范围。ObjectB需要访问一些您不希望公开的ObjectA方法。因此,他们必须是朋友。如果语言是java或c,则可以使这些方法具有“包”可见性。ObjectA是提供程序类,ObjectB是.NET控件。我使用提供程序来完成ObjectA的工作,而不是使.NET控件非常非常大,但是我需要ObjectA然后调用ObjectB的事件。。。我在寻找更多的表示模式,也许是其他什么。提供商如何决定何时调用ObjectB事件,请给出一个示例更具体地描述问题将帮助我们更好地了解您真正需要什么。从你的描述来看,这只是范围。ObjectB需要访问一些您不希望公开的ObjectA方法。因此,他们必须是朋友。如果语言是java或c,则可以使这些方法具有“包”可见性。ObjectA是提供程序类,ObjectB是.NET控件。我使用提供程序来完成ObjectA的工作,而不是使.NET控件非常非常大,但是我需要ObjectA然后调用ObjectB的事件。。。我一直在寻找更多的表示模式,也许是别的什么。提供者如何决定何时调用ObjectB事件,请给出一个例子,说明一个类在其他类实例上始终调用方法的实例。。。这在OOP中很常见……你忘记了OOP有很多糟糕的实现。阿门。但请看我的第二条评论,因为体系结构正在迫使我进行设计,否则我会有一个非常非常大的控件。。。这在OOP中很常见……你忘记了OOP有很多糟糕的实现。阿门。但看看我的第二条评论,因为架构迫使我进行设计,否则我会有一个非常非常大的控制权。