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

前端之家收集整理的这篇文章主要介绍了oop – 两个彼此依赖的对象.那不好吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我为我的项目构建自己的系统时,我正在学习很多关于设计模式的知识.我想问你一个我无法找到答案的设计问题.

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

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

我做了一个图来说明它:

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

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

谢谢.

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

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

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

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

原文链接:https://www.f2er.com/javaschema/281542.html

猜你在找的设计模式相关文章