gpt4 book ai didi

java - 如何创建包含不限于一个实例的数据的类对象的单个实例?

转载 作者:行者123 更新时间:2023-11-29 07:59:15 24 4
gpt4 key购买 nike

请考虑以下情况,属于建筑物的“消防和安全报警监控系统”。

我有 3 个类,ZoneControllerCameraController 类似于建筑物的中央控制单元。 Controller 控制Camera,因此Controller 中有一组Camera 对象。 Controller 能够执行各种任务,例如从摄像头读取数据、关闭摄像头、打开摄像头、将数据记录到数据库等。

Controller.java

    public class Controller
{
private Camera[] camera;

public byte[] getVideo()
{
}
}

Zone 类从 Controller 读取数据,并将命令传递给 Controller ​​。

Zone.java

 public Zone extends JPanel
{
private Controller ctrl;
}

一共有6个区域对象,因为这些区域类似于建筑物中的“房间”。不同的区域会有不同数量的摄像头,并且会向 Controller

传递不同的命令

即使有 6 个区域对象,也应该有一个 Controller ,因为它是中央控制单元,不同区域不能有不同的不同控制单元。但是“ Controller ”应该有属于不同区域的不同相机对象。例如,zone1 有 5 个摄像头,zone 2 有 2 个摄像头等。因此 Controller 可以以不同的方式控制摄像头对象。

Controller 做的事情也会影响整个建筑。例如,拉响安全警报。

但是,如果我为每个区域创建新的 Controller 对象,那么我将无法执行影响整个建筑物的任务。如果我制作 Controller 单字符模式,那么我将无法为不同的区域创建不同的相机对象并使用 getter 方法分别获取它们的数据。

那么,我怎样才能做到这两者呢?同样,我认为应该有一个 Controller ,因为建筑物的房间数量不能有多个 Controller 。

最佳答案

听起来您想要一个Controller,以及一堆带有CameraZone

public class Controller {

private ArrayList<Zone> zones;

}

...和...

public class Zone {

private ArrayList<Camera> cameras;

public byte[] getVideo() {
//...
}
}

这样,Controller 就可以引用所有的 Zone(并且间接地引用所有的 Camera,假设您有合适的 getter和二传手)。另外,作为旁注,根据您的设计,让 getVideo() 成为 Camera 类的一部分可能更有意义,除非“视频”是所有 Camera 的提要的集合。

关于java - 如何创建包含不限于一个实例的数据的类对象的单个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15483301/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com