適配器模式or門面代理
單例模式+享元模式+備忘錄模式
同時,每一個session都是一個享元,被保存在TDServiceManager中並被其管理。每當請求一個session的時候如果已經存在則不會創建新的session,而是共享已經創建的session。
manager中記錄session需要一個map,這就是備忘錄模式
不變模式
模板方法模式+策略模式
load()方法 由preload() internalLoad() 和 postLoad()組成 其中internalLoad()是abstract protected的,由子類實現。
每個INode接受LoadModifier,就是一個策略,提供preload() 和 postLoad()方法。
preload()
{
if(_loadModifier != null)
{
_loadModifier.preload();
}
else
{
return;
}
}
迭代器模式
每一個Selection都有一個iterator()方法,這個iterator代理的集合就是其內在的model(ServiceData)觀察者模式
每一個ContentLoadListener是對一個contentLoad事件(我們沒有用一個Event類來代表這個事件,而是通過添加 JobChangeListener來捕獲這個事件,然後在JobChangeListener的事件處理方法中調用 ContentLoadListener的相應beforeload或afterLoad方法,在job.schedule()的前後會觸發 JobChangeListener的aboutToRun()和done()方法)的觀察者。複合模式
INode,Folder,Document是典型的Component,Composite和Leaf