客户端数据清理
需求
当程序退出后,需要清除会议相关的持久化信息然后退出
实现方案
由于当程序退出时需要执行操作的位置在代码中相对分散,且程序退出情况也不止一种,于是我写了一个简易的Publisher-Subscriber系统,将产生退出行为的对象与需要在退出前执行一些操作的对象解耦,提高了代码的可维护性。
相关代码
namespace pm_client.util {
public class MessagePublisher {
public const string CLOSE_MESSAGE = "close";
static List<MessageSubscriber> subscribers = new List<MessageSubscriber>();
static List<string> type = new List<string>();
public static void publish(string message,string args) {
for(int i = 0; i < subscribers.Count; i++) {
if (type[i] == message) {
subscribers[i].onMessage(message, args);
}
}
}
public static void subscribe(MessageSubscriber subscr