I'm interested in implementing the observable and observer pattern for the server and client network application and standalone one.
Just wondering because it states "A clear design, such as will be readily understood by junior programmers, will be preferred to a complex one" in my specifications, could I automatically be failed for this as the design is slightly more complex?
If you don't break any must-requirement you won't fail automatically? You may lose some points because you may overcomplicate your solution and end up with a difficult one, but that's certainly no reason why you will fail automatically.
Not implementing the provided interface is one of the reasons for automatic failure
Don't see any similarity between the server window and the client window. But client window in standalone mode and networked mode are equal in my opinion (only configuration settings are different and that could be solved with showing a different dialog for example).
This thread has also several possibilities to handle similar GUIs (described also my approach).
So you could certainly have 2 (or 3) seperate screens which extend all from some parent class for example, Observer pattern is not a must requirement. I did it with 2 seperate screens (1 for server window and 1 for client window). So there is no difference in the client GUI between both modes, which looks very logical to me: no difference in functionality, only in configuration settings. So why creating 2 seperate screens...