足球戰術之Builder篇 (轉)
接上回:
/Develop/read_article.?id=11801">
使用builder,來多點進攻,
可以避免abstract factory的
進球方式已經定死的缺點,
因為builder生產的產品差異很大,
以至於無需定義一個抽象的父類,
再就是很多人會把builder和observer
弄混,以為subject就是director,
observer就是builder,其實builder
模式中的director是虛擬的,並
沒有該類,實際上只是在builder中
有統一的可以看作是director的介面。
用builder模式有以下幾個好處:
1.你可以任意改變進球的方式和過程,
只用新生成一個builder(打某種戰術的一個隊員)。
2.將進球的過程和其他組織過程分開。
3.可以對進球過程進行更精細的控制。
4.builder的抽象父類並不將生成方法
宣告成純虛擬,而是定義成空方法,
可以讓教練(client)只定義其需要的方法。
程式碼如下:
class 射門機器{
public:
virtual void 頭球射門(){}
virtual void 腳射門(){}
virtual void 其他射門(){}
virtual 進球* 得到進球(){return 0;}
protected:
射門機器();
};
class 隊員:public 射門機器{
public:
隊員();
virtual void 頭球射門();
virtual void 腳射門();
virtual void 其他射門();
virtual 進球* 得到進球();
private:
/*...自己的特性和進攻方式*/
};
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1005501/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 足球戰術之adapter篇 (轉)APT
- 足球戰術之observer及memento篇 (轉)Server
- 足球戰術->全攻全守之visitor篇 (轉)
- 足球戰術->單刀赴會之prototype篇 (轉)
- 足球戰術->組合進攻之composite篇 (轉)
- DirectShow之介面實戰篇(一) (轉)
- DirectShow之介面實戰篇(二) (轉)
- DirectShow之介面實戰篇(三) (轉)
- 足球黑科技之AI與足球智慧分析AI
- JBuilder9.0+Weblogic7.0實戰篇之Session Bean篇 (轉)UIWebSessionBean
- JBuilder9+Weblogic7實戰篇之工具篇(JDK) (轉)UIWebJDK
- 掌握C++Builder的除錯藝術-第二篇(完整版)之一 (轉)C++UI除錯
- 騰訊 、 網易的足球遊戲大戰遊戲
- 設計模式實戰系列之@Builder和建造者模式設計模式UI
- JBuilder9+Weblogic7實戰篇之工具篇(Weblogic) (轉)UIWeb
- JBuilder9+Weblogic7實戰篇之Filter運用篇 (轉)UIWebFilter
- JBuilder9+Weblogic7實戰篇之工具篇(JDBC 2) (轉)UIWebJDBC
- JBuilder9+Weblogic7實戰篇之工具篇(JDBC 1) (轉)UIWebJDBC
- 【GNU/Linux實戰手記之Emacs篇 上】 (轉)LinuxMac
- GNU/Linux實戰手記之基本操作篇 (轉)Linux
- .Net微服務實戰之技術架構分層篇微服務架構
- 淺談RASP技術攻防之實戰[環境配置篇]
- 解讀分散式防火牆之――技術篇(轉)分散式防火牆
- JBuilder9.0+Weblogic7.0實戰篇之JSP+SERVLET篇 (轉)UIWebJSServlet
- JBuilder9+Weblogic7實戰篇之JSP使用JDBC篇 (轉)UIWebJSJDBC
- JavaBean之Builder模式JavaBeanUI模式
- 機器學習實戰之開篇機器學習
- 淺談RASP技術攻防之實戰[程式碼實現篇]
- 【GNU/Linux實戰手記之安裝配置篇】 (轉)Linux
- JBuilder9+Weblogic7實戰篇之Entity Bean運用篇(一) (轉)UIWebBean
- [用設計模式鍛鍊C#系列]之Builder (轉)設計模式C#UI
- 魔力拼圖(Builder) (轉)UI
- Java 8 Stream之實戰篇Java
- Ant實戰篇 (一)(3) (轉)
- Ant實戰篇 (一)(4) (轉)
- JBuilder9+Weblogic7實戰篇之工具篇(ORACLE9i安裝) (轉)UIWebOracle
- 設計模式Builder之惑設計模式UI
- Automation In C++ Builder (轉)C++UI