我正在尝试通过Responder
类与Flash Media Server进行通信,因为我不想在我的类中放置从服务器接收回调的公共方法。
当客户端调用方法但,当服务器需要在客户端上调用方法时,Everyhing就按计划进行,我被迫定义 public 方法。
我目前正在做一些事情:
nc.client = {
someCallback: somePrivateFunction
};
现在someCallback
可以被服务器调用,我班上的方法somePrivateFunction
仍然是私有的,这正是我想要的。
我想知道是否有更清洁的解决方案?
答案 0 :(得分:2)
我相信你的代码很干净。如果你想要一个带有公共处理程序的私有函数,我不太确定你能不能让它变得更容易;
我能看到这个方法的唯一缺点就是无法覆盖someCallback,但我还没有遇到任何真实的问题。我认为在较大的项目中,围绕控制客户端/服务器调用构建一个全新的类是更有意义的,即
nc.client = new ConnectionClient(nc, myself);
另一种方法可能是自己处理所有函数调用,即让所有服务器调用调用一个公共方法,然后自己根据这些调用确定发生的事情。
您也可以让客户端调度事件而不是直接映射到方法。这将在服务器调用和您的类之间添加一个层,但对于较大的项目可能会“更清晰”。
清洁是非常主观的:)