相互依赖的对象建模

时间:2018-06-09 14:19:51

标签: java android networking model

我的(Android)应用需要网络扫描功能。

我想给它一个子网,我希望它向子网上的每个可能的地址发送请求,并确定它是否响应。

我有两个班级:

  • 设备,包含地址和属性available(bool)(可以通过方法checkAvailable设置)。

  • NetworkerScanner,它扩展Thread并实例化所有Device

  • 最后,我计划让一个对象成为Observable集合的观察者,该集合将包含所有可用的设备。

将可用设备添加到集合中并不明显。

算法

Let col be a Observable Collection
For each possible address
    Instantiate a corresponding Device
    On a new, separate thread, get this new device's availability. 
    If it's available, then add it to col. 

检查设备的可用性不是立竿见影的(我正在使用Volley,它使用回调)。

如何从HTTP请求回调中将设备添加到集合中?

我有几点想法:

  • 在实例化时将对集合的引用传递给设备,这似乎是一个坏主意,因为集合没有理由成为设备的属性。更重要的是,如果我想在同一Device个实例上运行多次扫描,那么它将不再起作用,因为Device只能有一个集合。

  • 我也可以将对集合的引用传递给checkAvailable方法,但我觉得这是一个技巧(以及错误类型的技巧)。

  • 调用checkAvailable时,将对onResponseListener(HTTP请求的回调方法)的引用传递给它。因为我会在我的NetworkScanner中创建监听器,所以我可以捕获本地集合。但我觉得这是错的。喜欢......非常错误。

请建议。

0 个答案:

没有答案