如何在OOP中为双向类建模

How To Model A Two-Way Class In OOP

本文关键字:建模 OOP      更新时间:2023-10-16

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

请注意,发送方和接收方都可以与实例交互,但发送方和接收方之间不能共享某些相同的状态。如果接收者删除了消息,发送者应该仍然可以访问它。不过,两者都应该能够阅读同一条消息,而不是拥有自己的副本。你还会看到一些东西,比如阅读收据,对方应该在那里看到对方的状态。

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

我的问题是,如何使用面向对象编程对其进行建模?我试着搜索了一会儿,但找不到任何关于这个话题的讨论。

您可以构建一个子类MessageData,每个子类都具有所需的属性,然后在类中构造两个实例,一个用于发送方,另一个用于接收方。也就是说,我在消息类中简单地为每个消息都设置属性并没有错。