抽象工廠是設計模組中建立型模式的一種,它比起工廠方法模式來說,更加具有一般性,在本模式中會引入乙個產品族的概念,就是說,在本模式中抽象產品會有多個,然後用抽象工廠去呼叫它們,具體怎麼去呼叫由具體工廠來實現。
看下列**,主要實現動態生成按鈕和彈出視窗的功能,彈出視窗可以根據瀏覽器的型別去呼叫適合
自己的方法,按鈕也可以根據傳入的樣式和型別去自動生成按鈕。
class program
}
#region windowopen的抽象產品和具體產品
publicabstract
class windowopen
protectedstring title
publicabstract
string tohtml(string url);
}
publicclass iewindowopen : windowopen
publicoverride
string tohtml(string url)
','')", url);
}
}
publicclass firefoxwindowopen : windowopen
publicoverride
string tohtml(string url)
','')", url);
}
}
#endregion
#region button的抽象產品和具體產品
///
/// 按鈕型別
///
publicenum buttontype
publicabstract
class button
protectedstring classname
publicabstract
string tohtml(buttontype buttontype, string id);
}
publicclass redbutton : button
publicoverride
string tohtml(buttontype buttontype, string id)
}
publicclass greenbutton : button
publicoverride
string tohtml(buttontype buttontype, string id)
}
#endregion
#region 抽象工廠和具體工廠
publicabstract
class factory
publicclass greenfactory : factory
publicoverride windowopen createwindowopen()
}
publicclass redfactory : factory
publicoverride windowopen createwindowopen()
}
#endregion
#region 應用環境
publicclass runenvironment
public button button
public runenvironment(factory factory)
}
#endregion
看到上面**後,如果我們想為按鈕加乙個黃色的樣式,我要示從button類派生乙個子類,去實現
黃色樣式功能就可以了,而不需要修改已有的**,這也很好的符合的「開閉原則(ocp)」
抽象工廠模組在開發中的應用
工廠方法模式在開發中的應用
事件是這樣的,我的每個頁面都有一些屬性,我拿其中乙個屬性pagetitle為例,它是乙個arraylist 它是頁面標題導航的意思,就是說它的標題用來儲存一些標題導航,比如,產品列表頁,它的pagetitle可能被解釋為 我的 產品 產品列表,而其它頁面的標題導航的表現形式也大同小異。了解的領域模式...
Android開發中抽象工廠模式
模式解讀 abstract 是 抽象 factory 是 工廠 所以合起來abstract factory 就是 抽象工廠 的意思。abstract factory pattern 中的抽象工廠則是把各種抽象零件合成抽象產品。換句話說,處理的重點是在介面 api 而不是零件的具體實現。只利用介面 a...
工廠模式在js中的應用
1.用ajax技術進行非同步請求是現在web開發中常見的乙個任務。簡單的工廠非常適合這種場合,根據瀏覽器能力不同生成乙個 xmlhttprequest或者actionxobject var handler function handle.prototype xhr.open method,url,t...