加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 程序设计 > 正文

oop – 两个彼此依赖的对象.那不好吗?

发布时间:2020-05-23 10:07:50 所属栏目:程序设计 来源:互联网
导读:当我为我的项目构建自己的系统时,我正在学习很多关于设计模式的知识.我想问你一个我无法找到答案的设计问题. 目前我正在使用具有多个客户端的套接字构建一个小型聊天服务器.现在我有三个班: 持有缺口,年龄和房间对象等信息的人类. 房间类,其中包含房间名称,

当我为我的项目构建自己的系统时,我正在学习很多关于设计模式的知识.我想问你一个我无法找到答案的设计问题.

目前我正在使用具有多个客户端的套接字构建一个小型聊天服务器.现在我有三个班:

>持有缺口,年龄和房间对象等信息的人类.
>房间类,其中包含房间名称,主题和当前在该房间的人员列表等信息.
>酒店级,其中包含人员列表和服务器上的房间列表.

我做了一个图来说明它:

我在酒店级服务器上有一个人员列表,因为现在跟踪在线有多少人会很好(不必遍历所有房间).
这些人住在酒店级,因为我希望能够在不搜索房间的情况下搜索特定的人.

这是不好的设计吗?还有另一种实现方式吗?

谢谢.

严格来说,类之间的相互依赖问题可以通过使用接口(抽象类,如果你的语言是例如C或Python)来解决,IRoom和IPerson;在伪代码中
interface IPerson
    IRoom getRoom()
    // etc

interface IRoom
    iter<IPerson> iterPerson()
    // etc

这使得只有接口相互依赖 – 接口的实际实现只需要依赖于接口.

如果你想要避免循环引用循环(例如在CPython中通过减慢垃圾收集速度,这可能会很麻烦),这也为你提供了大量的实现余地 – 你可以使用弱引用,一个典型的底层关系数据库对于第一个简单的原型,你可以使用你选择的语言中最简单的东西(可能很简单,而且必然是循环的,引用[[指针,在C]]与一个人指的是一个房间和房间到列表< Person>).

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读