Ok, here is the deal. My task is to make an application which basically has the following needs





I am pretty well rehersed in the fine art of how to write OO programs in C# (with polymorphism, inheritance etc...), BUT I find it quite hard to determine how I should define classes, inheritance, which methods that should be overridden, protected etc...

When thinking about this program, the classes I find are

Mission class (base class)
Queue class (derived from mission) every mission needs a queue
FTP Class (inherited by mission if mission is ftp)
MQ class (inherited my mission if mission is mq)
Logfile class (inherited by each mission, depending on what type of mission).

My thinking here goes like, you should be able to monitor 100 directories, then you define an array of 100 missions, each mission holds a queue object.

My plan is to be able to create for example

Mission myMiss[1] = new FtpMission(blabla);
Mission myMiss[2] = new FileMission(blabla);
Mission myMiss[3] = new MQMiss(blllla);

If you know what I mean... and each mission has a queue, no matter what kind of info there is in the queue (MQ mess, file path etc)

In other words, the CONSTRUCTOR of the mission class, has to be pretty intelligent with lots of overloading, depending on which kind of mission to be created. Perhaps I should narrow it down?? CAuse the difference in parameters between an ftp and an MQ mission is quite extensive, if you look at the needed parameters...



But you also might notice Im running around a bit in circles here, I am having trouble defining who should inherit what... and so on...

Forget the methods for now, can anyone please help me out with the class diagram... Am I thinking right or dead wrong????

The plan is to make a GUI program, where you easily can add multiple missions in separate threads....

And the "add mission" the user basically fills in the constructor parameters.

best regards
Henrik