需要课堂设计帮助

时间:2010-02-09 05:33:54

标签: design-patterns ooad

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

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类/接口方面实现相同的目标吗?或指向在这种情况下使用的设计模式的指针。 非常感谢您的相同时间

3 个答案:

答案 0 :(得分:1)

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

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

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

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

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

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

希望这有帮助。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

从这里继续你已经开始的大纲,让课程设计跟随。您可能会考虑进一步抽象,例如DesktopComputer将实现的ICLC,这样您就可以替换台式机的LaptopComputer对象。无论您的域名表明您需要什么,请遵循此。