2

Seeking thoughts on the following design. I know the design could be lot simpler if use Sockets. But I wanted to think of a design with pure POJO classes.

User

string id;
string displayname;

ChatWindow

User user;
ChatManager room; //interface to access ChatRoom
readDeliveryReceipts  boolean;
LinkedHashMap<id-userid, AcknowledgeMessage>messages;
Message currentMessage;
displayMessage(Message message);//Adds an entry to logs 
acknowledgeMessage (String messageId);
acceptAcknowledgement(String messageId);

Message → TextMessage , Video Message , Audio Message (inheritance)

-string id;
-DateTime timestamp;
-User user;
-string text;

AcknowledgeMessage (use decorator Pattern) //Store Message logs

-Message msg;
-Type (ServerAccepted , SentToClient);

ChatManager //An Adapter Class to interact with ChatRoom

ChatRoom room;
sendMessage(Message message);
register(ChatWindow window);
deregister(ChatWindow window);
acknowledgeMessage(String messageId);

ChatRoom (Chat Session)

List<ChatWindow> chatWindows;
BlockedQueue<Messages> messagesToSend;

//Listener Pattern
register(ChatWindow window);
deregister(ChatWindow window); 

receivingMessage(Message); //will add it to the Queue and send acknowledgement
//Listener Pattern
sendMessage(Message);   //Will iterate all the chatwindows
Tersosauros
  • 768
  • 3
  • 19
Sudhakar
  • 123
  • 1
  • 6
  • This isn't [Code Review](http://codereview.stackexchange.com/), but I suppose your interface definitions (???) aren't "code" (particularly with the strange inconsistent semi-colon usage). Please clarify ***what** it is that you are asking*. – Tersosauros Feb 29 '16 at 06:28
  • 1
    What do sockets have to do with anything? They are a mechanism of delivering messages, there is nothing about them that would not allow you do have a POJO-based application... – JDT Feb 29 '16 at 12:14
  • Please read: **[Are Design Review questions on-topic?](http://meta.programmers.stackexchange.com/q/6502)** –  Feb 29 '16 at 22:34

0 Answers0