Java 如何在OOP中建模双向类

Java 如何在OOP中建模双向类,java,python,c++,ruby,oop,Java,Python,C++,Ruby,Oop,假设您有一个消息类作为在线消息传递系统的一部分。消息实例可以由发送方查看、编辑和删除,也可以由接收方查看和删除 请注意,发送方和接收方都可以与实例交互,但是发送方和接收方之间不能共享某些相同的状态。如果接收者删除了消息,发送者应该仍然能够访问它。不过,两者都应该能够阅读相同的信息,而不是拥有自己的副本。您还可以阅读收据之类的内容,其中另一方应该看到另一方的状态 显然,您可以拥有所有内容的发送方和接收方版本,例如是否已删除发送方和是否已删除接收方。这感觉很难处理,所以我不确定这是正确的方法 我的问

假设您有一个消息类作为在线消息传递系统的一部分。消息实例可以由发送方查看、编辑和删除,也可以由接收方查看和删除

请注意,发送方和接收方都可以与实例交互,但是发送方和接收方之间不能共享某些相同的状态。如果接收者删除了消息,发送者应该仍然能够访问它。不过,两者都应该能够阅读相同的信息,而不是拥有自己的副本。您还可以阅读收据之类的内容,其中另一方应该看到另一方的状态

显然,您可以拥有所有内容的发送方和接收方版本,例如
是否已删除发送方
是否已删除接收方
。这感觉很难处理,所以我不确定这是正确的方法


我的问题是,如何使用面向对象编程来建模?我尝试搜索了一段时间,但没有找到关于该主题的任何讨论。

您可以使用每个属性构建一个子类MessageData,然后在类中构造两个实例,一个用于发送方,另一个用于接收方。也就是说,在message类中为每个类都设置属性并没有什么错