我正在尝试用Java创建一个消息传递系统.我有一个接口消息,它将有多个实现(例如TextMessage和AudioMessage).该接口将在服务器和客户端上都可用.
我的问题是客户端应根据从服务器收到的消息类型呈现不同的可视输出.因此,我要么必须知道我正在处理的消息的类型,我可以使用instanceof(),或者我可以在Message接口中放置一个抽象方法并使用多态,因此Message负责创建视觉输出.
然而,做任何这些都感觉很脏,因为我不得不每次创建一个新的if instanceof块或让Message负责创建视觉部分,这感觉就像错误一样,因为它应该是某种模型.
有没有人有我可以在这里使用的解决方案或适当的设计模式?
谢谢!
我想知道为什么这样做会起作用:
var_dump(5 == "5 AND SOME TEXT");
Run Code Online (Sandbox Code Playgroud)
输出:
bool(true)
Run Code Online (Sandbox Code Playgroud)
比较如下的浮点数时,也会获得相同的输出:
var_dump(1.234 == "1.234 AND SOME TEXT");
Run Code Online (Sandbox Code Playgroud)
这必须是故意的,因为这是很基本的事情,并且可以在多个PHP版本中使用。我只是不明白这是怎么打算的。