2010-02-09 107 views
2

我需要制定一定的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) 

类似地,对于每个柜目的,应为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类/接口方面实现一样吗?或者在这种情况下使用设计模式的指针。 深深地体会到时间对同一

回答

1

虽然我不是专家,但下面是你可以做什么: -

您可以创建两个一流的计算机和立方体和您的计算机类可以监控资源的数量说两个显示器连接到CPU或四个扬声器。

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

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

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

集线器的数量可以根据您的cubiles数量来监控。

希望这会有所帮助。

1

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

0

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

从这里开始,继续您已经开始的大纲并让课程设计如下。您可能会考虑制作一些更进一步的抽象,例如DesktopComputer将实施的IComputer,以便您可以换出桌面的LaptopComputer对象。无论您的域名建议您需要什么,请遵循。