The Observer pattern is a pattern that is easy enough to grasp and remember. Yet it has proved a struggle for me to implement this pattern in the context of a client-server application using Java sockets. The issue boils down to this. The client subscriber or observer must be Serializable enough to pass through the socket to the server for it to register with its subscribers list. Yet the socket reference that the client communicates with the server by is non-Serializable.
More to come. :)