2

我需要开发一个特定的 sw 模块,它以以下格式输出数据主要对象和相关对象和数量

IE

Desktop Computer
---- CPU 1x
---- Mouse 1x 
---- KB 1x
---- Monitor 1x
---- Speakers 2x

这意味着对于台式计算机对象,应有 1 个 CPU、1 个鼠标、1 个键盘、1 个监视器、2 个扬声器

Cubicles  
---------- Desktop Comps        4x (shall mean each cubicle shall contain 4 pc's) 
---------- Power Supply         1x (shall mean each cubicle shall have a main pow. 
supply)  

同样,对于每个 Cubicle 对象,应有 4 个桌面和 1 个电源对象

规则:每 4 个隔间应有一个 HUB 对象

The sample Output for 8 cubicles shall be  

   Total CPU's  - 32  
   HUB          -  2 
   Mouse        - 32 
   KB           - 32             
   Monitor      - 32          
   Speakers     - 64 
   Cubicles     - 8 
   Desktop PC's - 32 
   Pow. Supply  - 8 

任何人都可以帮助我在 OOP 类/接口方面实现相同的目标吗?或者指向在这种情况下使用的设计模式的指针。非常感谢您的时间

4

3 回答 3

1

虽然我不是专家,但以下是您可以做的:-

您可以创建两个类计算机和多维数据集,并且您的计算机类可以监视资源的数量,例如连接到 CPU 的两个监视器或连接的四个扬声器。

您可以通过在添加或更新时添加或更新计数来监控资源数量。这将允许您监控计算机和隔间的各个资源。

您的计算机和多维数据集类实现了一个接口 IDisplayCount,它将列出它们拥有的所有资源,这是策略模式。

您可以通过以下装饰器和工厂模式的组合来监控隔间列表。装饰器跟踪和工厂确保每个实例(更新或添加)都添加到通过创建实例或从同一位置更新来跟踪资源的列表中。

可以从您的 cubiles 类数监控集线器的数量。

希望这可以帮助。

于 2010-02-09T07:35:31.890 回答
1

为您拥有的每个名词创建一个类。每个类都可以有一个它包含的元素列表(object-x has-a object-y)。对于每个类,创建一个toString()以正确格式输出其包含的元素的方法。

于 2010-02-09T07:51:24.487 回答
0

看来您已经完成了大部分设计工作。UML/Class 设计非常接近您已经编写的内容。起点可能如下所示:alt text http://img6.imageshack.us/img6/9232/cubicle.png

从这里开始,继续你已经开始的大纲,然后让课程设计跟随。您可能会考虑进行一些进一步的抽象,例如 DesktopComputer 将实现的 IComputer,这样您就可以将 LaptopComputer 对象换成桌面。无论您的域表明您需要什么,请遵循它。

于 2010-02-09T18:59:36.293 回答