public interface IListener
{
void tagDeleted(ITTag iobj);
void tagAdded(ITTag iobj);
void tagModified(ITTag iobj);
}
public class Plugin1 : IListener
{
public Plugin1()
{
TTTBManager.getManager().AddListener(this);
}
public void tagDeleted(ITTag iobj)
{ }
public void tagAdded(ITTag iobj)
{ }
public void tagModified(ITTag iobj)
{ }
//发出广播
void CreadteTag()
{
TTTBManager.getManager().NotifyTagAdded(this, new TTagBlend());
}
}
//广播管理
public class TTTBManager
{
static private TTTBManager _manager = null;
private List<IListener> _ListenerList = new List<IListener>();
private TTTBManager()
{ }
static public TTTBManager getManager()
{
if(_manager == null)
{
_manager = new TTTBManager();
}
return _manager;
}
public void AddListener(IListener listener)
{
if (!_ListenerList.Contains(listener))
{
_ListenerList.Add(listener);
}
}
public void NotifyTagDeleted(IListener listener, ITTag obj)
{
foreach(IListener lis in _ListenerList)
{
if (lis == listener)
{
continue;
}
lis.tagDeleted(obj);
}
}
public void NotifyTagAdded(IListener listener, ITTag obj)
{
foreach (IListener lis in _ListenerList)
{
if (lis == listener)
{
continue;
}
lis.tagAdded(obj);
}
}
public void NotifyTagModified(IListener listener, ITTag obj)
{
foreach (IListener lis in _ListenerList)
{
if (lis == listener)
{
continue;
}
lis.tagModified(obj);
}
}
}