【发布时间】:2016-04-11 09:52:26
【问题描述】:
我被指派通过互联网启用对房间音频系统的远程控制来升级家庭媒体系统。由于它是一个遗留系统,我无法更改大部分架构。下面是该程序的简化形式。该系统由在 Home_Media_System 对象中初始化的几个主要类组成。
class Home_Media_System
{
Network _networkdata
Speakers _speakers
Lights _lights
Household_devices household_devices
}
class Speakers
{
void Play_Audio();
}
class Network
{
UdpReceiver udpReceiver
UdpTransmitter udpTransmitter
}
class UdpReceiver
{
void receive_audio_player_command()
{
if(playCommand)
start_audio();
}
void start_audio()
{
//How do I call the Play_Audio() function in class Speakers
}
}
class UdpTransmitter
{
void send_response();
}
我的问题是在 Network 类的 UdpReceiver 类中接收到命令后调用 Play_Audio() 函数。我希望这能澄清问题的标题,因为很难用一句话来解释。
请注意,主类在 Home_Media_System 中初始化。现在我正在考虑使用双事件处理程序,但我想知道是否有更优雅的方法。
【问题讨论】:
-
这个问题无法回答。这取决于您的软件的实现。
-
听起来像委托
-
您的课程不是公开的,因此您可能无法在主课程之外访问这些课程。