锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产美女亚洲精品久久久综合 ,成人久久免费网站,欧美国产精品久久高清http://www.shnenglu.com/jack-wang/category/12830.htmlzh-cnSun, 07 Aug 2011 00:45:01 GMTSun, 07 Aug 2011 00:45:01 GMT60甯歌璁捐妯″紡鐨勮В鏋愬拰瀹炵幇(C++)涔嬪崄鍥?Command妯″紡http://www.shnenglu.com/jack-wang/archive/2011/08/05/152488.html灝忕帇灝忕帇Thu, 04 Aug 2011 17:50:00 GMThttp://www.shnenglu.com/jack-wang/archive/2011/08/05/152488.htmlhttp://www.shnenglu.com/jack-wang/comments/152488.htmlhttp://www.shnenglu.com/jack-wang/archive/2011/08/05/152488.html#Feedback0http://www.shnenglu.com/jack-wang/comments/commentRss/152488.htmlhttp://www.shnenglu.com/jack-wang/services/trackbacks/152488.html杞細http://www.shnenglu.com/converse/archive/2006/08/04/10855.html

浣滅敤:
灝嗕竴涓姹傚皝瑁呬負涓涓璞?浠庤屼嬌浣犲彲鐢ㄤ笉鍚岀殑璇鋒眰瀵瑰鎴瘋繘琛屽弬鏁板寲;瀵硅姹傛帓闃熸垨璁板綍璇鋒眰鏃ュ織,浠ュ強鏀寔鍙挙娑堢殑鎿嶄綔.
UML緇撴瀯鍥?


瑙f瀽:
Comnand妯″紡鐨勬濇兂鏄妸鍛戒護灝佽鍦ㄤ竴涓被涓?灝辨槸榪欓噷鐨凜ommand鍩虹被,鍚屾椂鎶婃帴鏀跺璞′篃灝佽鍦ㄤ竴涓被涓氨鏄繖閲岀殑Receiver綾諱腑,鐢辮皟鐢ㄨ繖涓懡浠ょ殑綾諱篃灝辨槸榪欓噷鐨処nvoker綾繪潵璋冪敤.鍏跺疄,濡傛灉寮勬竻妤氫簡Command妯″紡鐨勫師鐞?灝變細鍙戠幇鍏跺疄瀹冨拰娉ㄥ唽鍥炶皟鍑芥暟鐨勫師鐞嗘槸寰堢浉浼肩殑,鑰屽湪闈㈠悜榪囩▼鐨勮璁′腑鐨勫洖璋冨嚱鏁板叾瀹炲拰榪欓噷鐨凜ommand綾葷殑浣滅敤鏄竴鑷寸殑.閲囩敤Command妯″紡瑙h︿簡鍛戒護鐨勫彂鍑鴻呭拰鍛戒護鐨勬墽琛岃?

瀹炵幇:
1)Command.h
/********************************************************************
    created:    2006/08/04
    filename:     Command.h
    author:        鏉庡垱
                
http://www.shnenglu.com/converse/

    purpose:    Command妯″紡鐨勬紨紺轟唬鐮?br />********************************************************************
*/


#ifndef COMMAND_H
#define COMMAND_H

class Command
{
public:
    
virtual ~Command() {}

    
virtual void Execute() = 0;
}
;

class Receiver
{
public:
    
void Action();
}
;

class Invoker
{
public:
    Invoker(Command 
*pCommand);
    
~Invoker();

    
void Invoke();
private:
    Command 
*m_pCommand;
}
;

class ConcreateComand
    : 
public Command
{
public:
    ConcreateComand(Receiver
* pReceiver);
    
virtual ~ConcreateComand();

    
virtual void Execute();

private:
    Receiver
* m_pReceiver;
}
;

#endif

2)Command.cpp
/********************************************************************
    created:    2006/08/04
    filename:     Command.cpp
    author:        鏉庡垱
                
http://www.shnenglu.com/converse/

    purpose:    Command妯″紡鐨勬紨紺轟唬鐮?br />********************************************************************
*/


#include 
"Command.h"
#include 
<iostream>

void Receiver::Action()
{
    std::cout 
<< "Receiver Action\n";
}


Invoker::Invoker(Command 
*pCommand)
    : m_pCommand(pCommand)
{

}


Invoker::
~Invoker()
{
    delete m_pCommand;
    m_pCommand 
= NULL;
}


void Invoker::Invoke()
{
    
if (NULL != m_pCommand)
    
{
        m_pCommand
->Execute();
    }

}


ConcreateComand::ConcreateComand(Receiver
* pReceiver)
    : m_pReceiver(pReceiver)
{

}


ConcreateComand::
~ConcreateComand()
{
    delete m_pReceiver;
    m_pReceiver 
= NULL;
}


void ConcreateComand::Execute()
{
    
if (NULL != m_pReceiver)
    
{
        m_pReceiver
->Action();
    }


    std::cout 
<< "Execute by ConcreateComand\n";
}


3)Main.cpp
/********************************************************************
    created:    2006/08/04
    filename:     main.cpp
    author:        鏉庡垱
                
http://www.shnenglu.com/converse/

    purpose:    Command妯″紡鐨勬祴璇曚唬鐮?br />********************************************************************
*/


#include 
"Command.h"
#include 
<stdlib.h>

int main()
{
    Receiver
* pReceiver = new Receiver();
    Command
*  pCommand  = new ConcreateComand(pReceiver);
    Invoker
*  pInvoker  = new Invoker(pCommand);

    pInvoker
->Invoke();

    delete pInvoker;

    system(
"pause");

    
return 0;
}



灝忕帇 2011-08-05 01:50 鍙戣〃璇勮
]]>
甯歌璁捐妯″紡鐨勮В鏋愬拰瀹炵幇(C++)涔嬪崄浜?ChainOfResponsibility妯″紡 http://www.shnenglu.com/jack-wang/archive/2011/08/05/152487.html灝忕帇灝忕帇Thu, 04 Aug 2011 17:46:00 GMThttp://www.shnenglu.com/jack-wang/archive/2011/08/05/152487.htmlhttp://www.shnenglu.com/jack-wang/comments/152487.htmlhttp://www.shnenglu.com/jack-wang/archive/2011/08/05/152487.html#Feedback0http://www.shnenglu.com/jack-wang/comments/commentRss/152487.htmlhttp://www.shnenglu.com/jack-wang/services/trackbacks/152487.htmlhttp://www.shnenglu.com/converse/archive/2006/07/28/10663.html

浣滅敤:
浣垮涓璞¢兘鏈夋満浼氬鐞嗚姹?浠庤岄伩鍏嶈姹傜殑鍙戦佽呭拰鎺ユ敹鑰呬箣闂寸殑鑰﹀悎鍏崇郴.灝嗚繖浜涘璞¤繛鎴愪竴鏉¢摼錛屽茍娌跨潃榪欐潯閾句紶閫掕璇鋒眰,鐩村埌鏈変竴涓璞″鐞嗗畠涓烘.

UML緇撴瀯鍥?



鎶借薄鍩虹被:
1)Handler:瀹氫箟涓涓鐞嗚姹傜殑鎺ュ彛,鍦ㄥ浘涓繖涓帴鍙e氨鏄疕andleRequset鍑芥暟,榪欎釜綾誨悓鏃舵湁涓涓寚鍚慔andler瀵硅薄鐨勬寚閽?鎸囧悜鍚庣畫鐨勫鐞嗚姹傜殑瀵硅薄(濡傛灉鏈夌殑璇?.

瑙f瀽:
榪欎釜妯″紡鎶婂彲浠ュ鐞嗕竴涓姹傜殑瀵硅薄浠ラ摼鐨勫艦寮忚繛鍦ㄤ簡涓璧?璁╄繖浜涘璞¢兘鏈夊鐞嗚姹傜殑鏈轟細.濂芥瘮鍘熸潵鐪嬪彜瑁呯數瑙嗕腑緇忓父鐪嬪埌鐨囧涓彫瑙佹煇浜虹殑鏃跺?澶洃浠?鍙互澶勭悊涓涓姹傜殑瀵硅薄)灝變細渚濇鐨勫枈:浼燲X...榪欐牱涓鐩翠笅鍘葷洿鍒版壘鍒拌繖涓漢涓烘.ChainOfResponsibility妯″紡涔熸槸榪欐牱鐨勫鐞嗚姹傜殑,濡傛灉鏈夊悗緇殑瀵硅薄鍙互澶勭悊,閭d箞浼犵粰鍚庣畫鐨勫璞″鐞?鍚﹀垯灝辮嚜宸卞鐞嗚姹?榪欐牱鐨勮璁℃妸璇鋒眰鐨勫彂閫佽呭拰璇鋒眰榪欑鐨勫鐞嗚呰В鑰︿簡,濂芥瘮鍙戝彿鐨勭殗甯濅笉鐭ラ亾鍒板簳鏄摢涓お鐩戞渶鍚庝細鎵懼埌浠栬鎵懼埌鐨勪漢涓鑸?鍙鍙戝嚭鍛戒護灝監K浜?

瀹炵幇:
1)ChainOfResponsibility.h
/********************************************************************
    created:    2006/07/20
    filename:     ChainOfResponsibility.h
    author:        鏉庡垱
                
http://www.shnenglu.com/converse/

    purpose:    ChainOfResponsibility妯″紡鐨勬紨紺轟唬鐮?br />********************************************************************
*/


#ifndef CHAINOFRESPONSIBILITY_H
#define CHAINOFRESPONSIBILITY_H

#include 
<stdio.h>

// 鎶借薄鍩虹被,瀹氫箟涓涓鐞嗚姹傜殑鎺ュ彛
class Handler
{
public:
    Handler(Handler 
*pSuccessor = NULL);
    
virtual ~Handler();

    
// 綰櫄鍑芥暟,鐢辨淳鐢熺被瀹炵幇
    virtual void HandleRequset() = 0;

protected:
    Handler
* m_pSuccessor;
}
;

class ConcreateHandler1
    : 
public Handler
{
public:
    ConcreateHandler1(Handler 
*pSuccessor = NULL) : Handler(pSuccessor){}
    
virtual ~ConcreateHandler1(){}

    
virtual void HandleRequset();
}
;

class ConcreateHandler2
    : 
public Handler
{
public:
    ConcreateHandler2(Handler 
*pSuccessor = NULL) : Handler(pSuccessor){}
    
virtual ~ConcreateHandler2(){}

    
virtual void HandleRequset();
}
;

#endif

2)ChainOfResponsibility.cpp
/********************************************************************
    created:    2006/07/20
    filename:     ChainOfResponsibility.cpp
    author:        鏉庡垱
                
http://www.shnenglu.com/converse/

    purpose:    ChainOfResponsibility妯″紡鐨勬紨紺轟唬鐮?br />********************************************************************
*/


#include 
"ChainOfResponsibility.h"
#include 
<iostream>

Handler::Handler(Handler 
*pSuccessor /* = NULL*/
    : m_pSuccessor(pSuccessor)
{
}


Handler::
~Handler()
{
    delete m_pSuccessor;
    m_pSuccessor 
= NULL;
}


void ConcreateHandler1::HandleRequset()
{
    
if (NULL != m_pSuccessor)
    
{
        m_pSuccessor
->HandleRequset();
    }

    
else
    
{
        std::cout 
<< "HandleRequset by ConcreateHandler1\n";
    }

}


void ConcreateHandler2::HandleRequset()
{
    
if (NULL != m_pSuccessor)
    
{
        m_pSuccessor
->HandleRequset();
    }

    
else
    
{
        std::cout 
<< "HandleRequset by ConcreateHandler2\n";
    }

}



3)Main.cpp
/********************************************************************
    created:    2006/07/20
    filename:     Main.cpp
    author:        鏉庡垱
                
http://www.shnenglu.com/converse/

    purpose:    ChainOfResponsibility妯″紡鐨勬祴璇曚唬鐮?br />********************************************************************
*/


#include 
"ChainOfResponsibility.h"
#include 
<stdlib.h>

int main()
{
    Handler 
*p1 = new ConcreateHandler1();
    Handler 
*p2 = new ConcreateHandler2(p1);

    p2
->HandleRequset();

    delete p2;

    system(
"pause");

    
return 0;
}



灝忕帇 2011-08-05 01:46 鍙戣〃璇勮
]]>
Command妯″紡http://www.shnenglu.com/jack-wang/archive/2010/01/16/105820.html灝忕帇灝忕帇Sat, 16 Jan 2010 08:27:00 GMThttp://www.shnenglu.com/jack-wang/archive/2010/01/16/105820.htmlhttp://www.shnenglu.com/jack-wang/comments/105820.htmlhttp://www.shnenglu.com/jack-wang/archive/2010/01/16/105820.html#Feedback0http://www.shnenglu.com/jack-wang/comments/commentRss/105820.htmlhttp://www.shnenglu.com/jack-wang/services/trackbacks/105820.html

灝忕帇 2010-01-16 16:27 鍙戣〃璇勮
]]>
Adapter妯″紡http://www.shnenglu.com/jack-wang/archive/2010/01/16/105811.html灝忕帇灝忕帇Sat, 16 Jan 2010 06:42:00 GMThttp://www.shnenglu.com/jack-wang/archive/2010/01/16/105811.htmlhttp://www.shnenglu.com/jack-wang/comments/105811.htmlhttp://www.shnenglu.com/jack-wang/archive/2010/01/16/105811.html#Feedback0http://www.shnenglu.com/jack-wang/comments/commentRss/105811.htmlhttp://www.shnenglu.com/jack-wang/services/trackbacks/105811.html


灝忕帇 2010-01-16 14:42 鍙戣〃璇勮
]]>
Facade妯″紡http://www.shnenglu.com/jack-wang/archive/2010/01/16/105810.html灝忕帇灝忕帇Sat, 16 Jan 2010 06:32:00 GMThttp://www.shnenglu.com/jack-wang/archive/2010/01/16/105810.htmlhttp://www.shnenglu.com/jack-wang/comments/105810.htmlhttp://www.shnenglu.com/jack-wang/archive/2010/01/16/105810.html#Feedback0http://www.shnenglu.com/jack-wang/comments/commentRss/105810.htmlhttp://www.shnenglu.com/jack-wang/services/trackbacks/105810.html


浣跨敤Facade妯″紡鍚庣殑紼嬪簭緇撴瀯錛?br>


灝忕帇 2010-01-16 14:32 鍙戣〃璇勮
]]>
鎶借薄宸ュ巶(Abstract Factory) http://www.shnenglu.com/jack-wang/archive/2009/01/02/70971.html灝忕帇灝忕帇Thu, 01 Jan 2009 20:23:00 GMThttp://www.shnenglu.com/jack-wang/archive/2009/01/02/70971.htmlhttp://www.shnenglu.com/jack-wang/comments/70971.htmlhttp://www.shnenglu.com/jack-wang/archive/2009/01/02/70971.html#Feedback0http://www.shnenglu.com/jack-wang/comments/commentRss/70971.htmlhttp://www.shnenglu.com/jack-wang/services/trackbacks/70971.html闃呰鍏ㄦ枃

灝忕帇 2009-01-02 04:23 鍙戣〃璇勮
]]>
宸ュ巶鏂規硶錛坒actory-method錛夋ā寮?/title><link>http://www.shnenglu.com/jack-wang/archive/2009/01/02/70970.html</link><dc:creator>灝忕帇</dc:creator><author>灝忕帇</author><pubDate>Thu, 01 Jan 2009 20:22:00 GMT</pubDate><guid>http://www.shnenglu.com/jack-wang/archive/2009/01/02/70970.html</guid><wfw:comment>http://www.shnenglu.com/jack-wang/comments/70970.html</wfw:comment><comments>http://www.shnenglu.com/jack-wang/archive/2009/01/02/70970.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/jack-wang/comments/commentRss/70970.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/jack-wang/services/trackbacks/70970.html</trackback:ping><description><![CDATA[<p><font size=5><span><span>涓錛?span> </span></span>宸ュ巶鏂規硶錛坒actory-method錛夋ā寮?/span></font></p> <p><strong> </strong></p> <p><font size=4><span><span>1錛?span> </span></span>鎰忓浘</span></font></p> <p><span>瀹氫箟涓涓垱寤哄璞$殑鎺ュ彛錛岃瀛愮被鍐沖畾瀹炰緥鍖栧摢涓駭鍝佺被銆傚伐鍘傛柟娉曚嬌涓涓璞$殑鍒涘緩寤惰繜鍒板瓙綾匯?/span></p> <p> </p> <p><font size=4><span><span>2錛?span> </span></span>閫傜敤鎬?/span></font></p> <p><span>褰撲竴涓被涓嶇煡閬撳畠瑕佸垱寤虹殑瀵硅薄鐨勭被鏃躲?/span></p> <p><span>褰撲竴涓被甯屾湜鐢卞畠鐨勫瓙綾繪潵鍐沖畾鍒涘緩鍝釜綾葷殑瀵硅薄鏃躲?/span></p> <p><span>褰撲竴涓被鍐沖畾灝嗗垱寤哄璞″鎵樼粰澶氫釜瀛愮被錛屽茍涓斿笇鏈涘皢閭d釜瀛愮被鏄唬鐞嗚繖涓淇℃伅灞閮ㄥ寲鐨勬椂鍊欍?/span></p> <p> </p> <p><font size=4><span><span>3錛?span> </span></span>緇撴瀯</span></font></p> <p><img border=0 src="http://blog.vckbase.com/images/vckbase_com/fastzhao/wwww.jpg" width=650 height=458><br></p> <p><font size=4><span><span>4錛?span> </span></span>鍙備笌鑰?/span></font></p> <p><font size=4><strong><span><span>l<span>         </span></span></span><span>Creater</span><span>錛?/span></strong></font></p> <p><span>澹版槑宸ュ巶鏂規硶鐨勬娊璞$被錛屽伐鍘傛柟娉曡繑鍥炰竴涓駭鍝佺被錛?/span><span>Product</span><span>錛夈?/span></p> <p><span>鍙互璋冪敤宸ュ巶鏂規硶榪斿洖涓涓駭鍝佸璞°?/span></p> <p> </p> <p><font size=4><strong><span><span>l<span>         </span></span></span><span>ConcreteCreater</span><span>錛?/span></strong></font></p> <p><span>閲嶅畾涔夊伐鍘傛柟娉曪紝浠ヨ繑鍥炰竴涓壒瀹氱殑</span><span>product</span><span>銆?/span></p> <p> </p> <p><font size=4><strong><span><span>l<span>         </span></span></span><span>Product:</span></strong></font></p> <p><span>浜у搧鎶借薄綾伙紝緇欑敤鎴鋒彁渚涗竴鑷寸殑浜у搧鎺ュ彛銆?/span></p> <p> </p> <p><font size=4><strong><span><span>l<span>         </span></span></span><span>ConcreteProduct:</span></strong></font></p> <p><span>鐗瑰畾鐨勪駭鍝侊紝瀹炵幇</span><span>product</span><span>鎺ュ彛銆?/span></p> <p> </p> <p><font size=4><span><span>5錛?span> </span></span>鏁堟灉</span></font></p> <p><span>          宸ュ巶鏂規硶灝嗙壒瀹氱殑綾葷殑瀹炰緥鍖栧歡榪熷埌瀛愮被錛岃屼笖榪斿洖</span><span>product</span><span>鎺ュ彛錛屼嬌鐢ㄦ埛浠g爜涓嶇敤鍜屽叿浣撶被鎵撲氦閬擄紝涓鑷寸殑瀵瑰緟</span><span>Product</span><span>銆傛墍浠ュ湪鐢ㄦ埛瑕佸姞鍏ユ柊浜у搧鐨勬椂鍊欙紝鏃犻渶鏇存敼瀹㈡埛浠g爜錛屽彧闇鍔犲叆涓涓柊鐨?/span><span>ConcreteProduct</span><span>鍜?/span><span>ConcreteCreater</span><span>鍗沖彲錛岃繖涓篃鏄伒</span><span> </span><span>瀹堜簡“寮鏀懼皝闂師鍒?#8221;銆?/span></p> <p><span><span>  </span><span>                                  </span></span><span>榪炴帴騫寵鐨勭被灞傛錛屼笂闈㈢殑緇撴瀯鍥句腑錛?/span><span>ConcreteCreater1</span><span>瀵瑰簲鍒?/span><span>ConcreterProduct1</span><span>鑰?/span><span>ConcreteCreater2</span><span>瀵瑰簲鍒涘緩</span><span>ConcreterProduct2</span><span>銆傛墍浠?/span><span>creater</span><span>鍜?/span><span>product</span><span>鐨勭被灞傛鏄鉤琛岀殑錛岀敤鎴峰彧闇閫夊畾涓涓?/span><span>Creater</span><span>錛屽氨鍒涘緩鍑哄搴?/span><span>product</span><span>銆傚儚鏄竴涓?/span><span>map</span><span>涓鏍鳳紝涓嶄細鍑虹幇鐗涘ご涓嶅椹槾涔嬫併?/span></p> <p> </p> <p><font size=4><span><span>6錛?span> </span></span>瀹炵幇鍙婂彉浣?/span></font></p> <p><span><span><span>                                </span></span></span><span>Creater</span><span>鏈変袱縐嶅疄鐜幫紝涓縐嶅氨鏄娊璞$殑宸ュ巶鏂規硶錛屽叿浣撳疄鐜扮暀鍒板瓙綾匯傚彟涓縐嶅氨鏄湁涓涓己鐪佺殑瀹炵幇錛屽瓙綾諱篃鍙互閲嶆柊瀹炵幇榪欎釜鏂規硶銆傝繖縐嶆柟娉曚嬌鐢ㄤ簬鐪熺殑鏈変竴涓粯璁ょ殑</span><span>Product</span><span>闇瑕佸疄渚嬪寲鐨勮繖縐嶆儏鍐點?/span></p> <p><span>       甯﹀弬鏁扮殑宸ュ巶鏂規硶錛岃繖縐嶆儏鍐靛彲浠ュ垱寤哄縐嶄駭鍝侊紝涓嶈繃鏈変釜闄愬埗灝辨槸鎵鏈変駭鍝侀兘瑕佸疄鐜?/span><span>product</span><span>鎺ュ彛錛屽惁鍒欏氨澶卞幓宸ュ巶鏂規硶鐨勬剰涔変簡銆備唬鐮佸涓嬶細</span></p> <p><span><font color=#000080>Product* ConcreteCreater1::FactoryMethod(int nID)</font></span></p> <p><span><font color=#000080>{</font></span></p> <p><span><font color=#000080><span>     </span>If(nID == BUTTON)</font></span></p> <p><span><font color=#000080><span>     </span>{</font></span></p> <p><span><font color=#000080><span>         </span>return new button;</font></span></p> <p><span><font color=#000080>}</font></span></p> <p><span><font color=#000080>Else if(nID == BOX)</font></span></p> <p><span><font color=#000080>{</font></span></p> <p><span><font color=#000080><span>    </span>return new box; </font></span></p> <p><span><font color=#000080>}</font></span></p> <p><span><font color=#000080>…</font></span></p> <p><span><font color=#000080>}</font></span></p> <p> </p> <p><span>鐢ㄦā鏉垮疄鐜幫紝鐪佺暐鍒涘緩瀛愮被銆?/span></p> <p><span> <font color=#000080>class Creater</font></span></p> <p><span><font color=#000080>{</font></span></p> <p><span><font color=#000080>public:</font></span></p> <p><span><font color=#000080><span>     </span>virtual Product* FactoryMethod() = 0;</font></span></p> <p><span><font color=#000080>};</font></span></p> <p><span><font color=#000080> </font></span></p> <p><span><font color=#000080>template<class theProduct></font></span></p> <p><span><font color=#000080>class TempCreater: public Creater</font></span></p> <p><span><font color=#000080>{</font></span></p> <p><span><font color=#000080><span>     </span>virtual Product* FactoryMethod();</font></span></p> <p><span><font color=#000080>};</font></span></p> <p><span><font color=#000080> </font></span></p> <p><span><font color=#000080> </font></span></p> <p><span><font color=#000080>template<class theProduct></font></span></p> <p><span><font color=#000080>Product* TempCreater<theProduct>::FactoryMethod()</font></span></p> <p><span><font color=#000080>{</font></span></p> <p><span><font color=#000080><span>     </span>return new theProduct;</font></span></p> <p><span><font color=#000080>}</font></span></p> <p><span><span>         </span></span></p> <p><span><span>         </span></span><span>浣跨敤榪欎釜妯$増瀹㈡埛绔彧闇瀹氫箟浜у搧錛岃屼笉闇瀹氫箟</span><span>creater</span><span>鐨勫瓙綾匯?/span></p> <p> </p> <p><font size=5><span><span>浜岋紟<span> </span></span>紼嬪簭涓句緥</span></font></p> <p><strong><span><span>        </span></span></strong><span>鍦ㄤ竴涓?/span><span>ACT</span><span>娓告垙涓紝涓昏榪囧叧榪囩▼涓湁璁稿鏁屼漢錛屽鐙鹼紙</span><span>wolf</span><span>錛?/span><span>,</span><span>铦欒潬錛?/span><span>bat</span><span>錛?/span><span>,</span><span>鑰佹紙</span><span>BOSS</span><span>錛?/span><span>,</span><span>鍦ㄦ瘡涓鍏崇殑鍒氬紑濮嬪氨瑕佸垱寤鴻澶氫笉鍚岀殑鏁屼漢錛屽鏋滀笉鐢ㄥ伐鍘傛柟娉曪紝鍒欐妸鎵鏈夌殑鍒涘緩浠誨姟閮芥斁鍦ㄤ簡瀹㈡埛浠g爜涓紝鍒欎竴涓唬鐮佷笉鏄撴墿鍏呭拰淇敼錛屼簩鏄唬鐮佸緢鏉備貢銆傝岀敤浜嗗伐鍘傛柟娉曞垯鍙互鍏嬫湇榪欎袱涓己鐐廣傛瘮濡備綘澧炲姞涓涓柊鐨勬晫浜?/span><span>-</span><span>鎭愰緳錛屽垯鍙渶澧炲姞涓涓亹榫欑被錛?/span><span>ConcreteProduct</span><span>錛夛紝鍐嶅鍔犱竴涓垱寤烘亹榫欑殑綾伙紙</span><span>ConcreteCreater </span><span>錛夊氨</span><span>OK</span><span>浜嗐?br><br></p> <p><span>婧愮爜濡備笅錛?/span></p> <p align=left></span> </p> <div> <div><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"><span>//</span><span>product abstract class</span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>class</span><span> Enemy<br><img id=Codehighlighter1_38_125_Open_Image onclick="this.style.display='none'; Codehighlighter1_38_125_Open_Text.style.display='none'; Codehighlighter1_38_125_Closed_Image.style.display='inline'; Codehighlighter1_38_125_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img id=Codehighlighter1_38_125_Closed_Image onclick="this.style.display='none'; Codehighlighter1_38_125_Closed_Text.style.display='none'; Codehighlighter1_38_125_Open_Image.style.display='inline'; Codehighlighter1_38_125_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span id=Codehighlighter1_38_125_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_38_125_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif"></span><span>public</span><span>:<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    </span><span>virtual</span> <span>void</span><span> attack() </span><span>=</span> <span>0</span><span>;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    </span><span>virtual</span> <span>void</span><span> Draw() </span><span>=</span> <span>0</span><span>;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    </span><span>virtual</span> <span>~</span><span>Enemy() </span><span>=</span> <span>0</span><span>;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span>;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>//</span><span> concrete product class</span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>class</span><span> Wolf : </span><span>public</span><span> Enemy<br><img id=Codehighlighter1_181_292_Open_Image onclick="this.style.display='none'; Codehighlighter1_181_292_Open_Text.style.display='none'; Codehighlighter1_181_292_Closed_Image.style.display='inline'; Codehighlighter1_181_292_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img id=Codehighlighter1_181_292_Closed_Image onclick="this.style.display='none'; Codehighlighter1_181_292_Closed_Text.style.display='none'; Codehighlighter1_181_292_Open_Image.style.display='inline'; Codehighlighter1_181_292_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span id=Codehighlighter1_181_292_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_181_292_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    </span><span>void</span><span> attack()<br><img id=Codehighlighter1_199_239_Open_Image onclick="this.style.display='none'; Codehighlighter1_199_239_Open_Text.style.display='none'; Codehighlighter1_199_239_Closed_Image.style.display='inline'; Codehighlighter1_199_239_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img id=Codehighlighter1_199_239_Closed_Image onclick="this.style.display='none'; Codehighlighter1_199_239_Closed_Text.style.display='none'; Codehighlighter1_199_239_Open_Image.style.display='inline'; Codehighlighter1_199_239_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedSubBlock.gif">    </span><span id=Codehighlighter1_199_239_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_199_239_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">        cout </span><span><<</span> <span>"</span><span>Wolf attack me!</span><span>"</span> <span><<</span><span> endl;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">    }</span></span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    </span><span>void</span><span> Draw()<br><img id=Codehighlighter1_255_290_Open_Image onclick="this.style.display='none'; Codehighlighter1_255_290_Open_Text.style.display='none'; Codehighlighter1_255_290_Closed_Image.style.display='inline'; Codehighlighter1_255_290_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img id=Codehighlighter1_255_290_Closed_Image onclick="this.style.display='none'; Codehighlighter1_255_290_Closed_Text.style.display='none'; Codehighlighter1_255_290_Open_Image.style.display='inline'; Codehighlighter1_255_290_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedSubBlock.gif">    </span><span id=Codehighlighter1_255_290_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_255_290_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">        cout </span><span><<</span> <span>"</span><span>I am Wolf!</span><span>"</span> <span><<</span><span> endl;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">    }</span></span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span>;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>//</span><span> concrete product class</span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>class</span><span> Bat : </span><span>public</span><span> Enemy<br><img id=Codehighlighter1_347_456_Open_Image onclick="this.style.display='none'; Codehighlighter1_347_456_Open_Text.style.display='none'; Codehighlighter1_347_456_Closed_Image.style.display='inline'; Codehighlighter1_347_456_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img id=Codehighlighter1_347_456_Closed_Image onclick="this.style.display='none'; Codehighlighter1_347_456_Closed_Text.style.display='none'; Codehighlighter1_347_456_Open_Image.style.display='inline'; Codehighlighter1_347_456_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span id=Codehighlighter1_347_456_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_347_456_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    </span><span>void</span><span> attack()<br><img id=Codehighlighter1_365_404_Open_Image onclick="this.style.display='none'; Codehighlighter1_365_404_Open_Text.style.display='none'; Codehighlighter1_365_404_Closed_Image.style.display='inline'; Codehighlighter1_365_404_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img id=Codehighlighter1_365_404_Closed_Image onclick="this.style.display='none'; Codehighlighter1_365_404_Closed_Text.style.display='none'; Codehighlighter1_365_404_Open_Image.style.display='inline'; Codehighlighter1_365_404_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedSubBlock.gif">    </span><span id=Codehighlighter1_365_404_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_365_404_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">        cout </span><span><<</span> <span>"</span><span>Bat attack me!</span><span>"</span> <span><<</span><span> endl;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">    }</span></span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    </span><span>void</span><span> Draw()<br><img id=Codehighlighter1_420_454_Open_Image onclick="this.style.display='none'; Codehighlighter1_420_454_Open_Text.style.display='none'; Codehighlighter1_420_454_Closed_Image.style.display='inline'; Codehighlighter1_420_454_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img id=Codehighlighter1_420_454_Closed_Image onclick="this.style.display='none'; Codehighlighter1_420_454_Closed_Text.style.display='none'; Codehighlighter1_420_454_Open_Image.style.display='inline'; Codehighlighter1_420_454_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedSubBlock.gif">    </span><span id=Codehighlighter1_420_454_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_420_454_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">        cout </span><span><<</span> <span>"</span><span>I am Bat!</span><span>"</span> <span><<</span><span> endl;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">    }</span></span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span>;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>//</span><span> concrete product class</span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>class</span><span> Boss : </span><span>public</span><span> Enemy<br><img id=Codehighlighter1_512_623_Open_Image onclick="this.style.display='none'; Codehighlighter1_512_623_Open_Text.style.display='none'; Codehighlighter1_512_623_Closed_Image.style.display='inline'; Codehighlighter1_512_623_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img id=Codehighlighter1_512_623_Closed_Image onclick="this.style.display='none'; Codehighlighter1_512_623_Closed_Text.style.display='none'; Codehighlighter1_512_623_Open_Image.style.display='inline'; Codehighlighter1_512_623_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span id=Codehighlighter1_512_623_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_512_623_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    </span><span>void</span><span> attack()<br><img id=Codehighlighter1_530_570_Open_Image onclick="this.style.display='none'; Codehighlighter1_530_570_Open_Text.style.display='none'; Codehighlighter1_530_570_Closed_Image.style.display='inline'; Codehighlighter1_530_570_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img id=Codehighlighter1_530_570_Closed_Image onclick="this.style.display='none'; Codehighlighter1_530_570_Closed_Text.style.display='none'; Codehighlighter1_530_570_Open_Image.style.display='inline'; Codehighlighter1_530_570_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedSubBlock.gif">    </span><span id=Codehighlighter1_530_570_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_530_570_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">        cout </span><span><<</span> <span>"</span><span>Boss attack me!</span><span>"</span> <span><<</span><span> endl;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">    }</span></span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    </span><span>void</span><span> Draw()<br><img id=Codehighlighter1_586_621_Open_Image onclick="this.style.display='none'; Codehighlighter1_586_621_Open_Text.style.display='none'; Codehighlighter1_586_621_Closed_Image.style.display='inline'; Codehighlighter1_586_621_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img id=Codehighlighter1_586_621_Closed_Image onclick="this.style.display='none'; Codehighlighter1_586_621_Closed_Text.style.display='none'; Codehighlighter1_586_621_Open_Image.style.display='inline'; Codehighlighter1_586_621_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedSubBlock.gif">    </span><span id=Codehighlighter1_586_621_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_586_621_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">        cout </span><span><<</span> <span>"</span><span>I am Boss!</span><span>"</span> <span><<</span><span> endl;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">    }</span></span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span>;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>//</span><span> creater abstract class</span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>class</span><span> EnemyCreater<br><img id=Codehighlighter1_672_709_Open_Image onclick="this.style.display='none'; Codehighlighter1_672_709_Open_Text.style.display='none'; Codehighlighter1_672_709_Closed_Image.style.display='inline'; Codehighlighter1_672_709_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img id=Codehighlighter1_672_709_Closed_Image onclick="this.style.display='none'; Codehighlighter1_672_709_Closed_Text.style.display='none'; Codehighlighter1_672_709_Open_Image.style.display='inline'; Codehighlighter1_672_709_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span id=Codehighlighter1_672_709_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_672_709_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    </span><span>virtual</span><span> Enemy</span><span>*</span><span> CreateEnemy() </span><span>=</span> <span>0</span><span>;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span>;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>//</span><span> concrete creater class</span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>class</span><span> WolfCreater : </span><span>public</span><span> EnemyCreater<br><img id=Codehighlighter1_779_832_Open_Image onclick="this.style.display='none'; Codehighlighter1_779_832_Open_Text.style.display='none'; Codehighlighter1_779_832_Closed_Image.style.display='inline'; Codehighlighter1_779_832_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img id=Codehighlighter1_779_832_Closed_Image onclick="this.style.display='none'; Codehighlighter1_779_832_Closed_Text.style.display='none'; Codehighlighter1_779_832_Open_Image.style.display='inline'; Codehighlighter1_779_832_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span id=Codehighlighter1_779_832_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_779_832_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">     Enemy</span><span>*</span><span> CreateEnemy()<br><img id=Codehighlighter1_806_830_Open_Image onclick="this.style.display='none'; Codehighlighter1_806_830_Open_Text.style.display='none'; Codehighlighter1_806_830_Closed_Image.style.display='inline'; Codehighlighter1_806_830_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img id=Codehighlighter1_806_830_Closed_Image onclick="this.style.display='none'; Codehighlighter1_806_830_Closed_Text.style.display='none'; Codehighlighter1_806_830_Open_Image.style.display='inline'; Codehighlighter1_806_830_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedSubBlock.gif">     </span><span id=Codehighlighter1_806_830_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_806_830_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">         </span><span>return</span> <span>new</span><span> Wolf;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">     }</span></span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span>;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>//</span><span> concrete creater class</span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>class</span><span> BatCreater : </span><span>public</span><span> EnemyCreater<br><img id=Codehighlighter1_901_953_Open_Image onclick="this.style.display='none'; Codehighlighter1_901_953_Open_Text.style.display='none'; Codehighlighter1_901_953_Closed_Image.style.display='inline'; Codehighlighter1_901_953_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img id=Codehighlighter1_901_953_Closed_Image onclick="this.style.display='none'; Codehighlighter1_901_953_Closed_Text.style.display='none'; Codehighlighter1_901_953_Open_Image.style.display='inline'; Codehighlighter1_901_953_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span id=Codehighlighter1_901_953_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_901_953_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">     Enemy</span><span>*</span><span> CreateEnemy()<br><img id=Codehighlighter1_928_951_Open_Image onclick="this.style.display='none'; Codehighlighter1_928_951_Open_Text.style.display='none'; Codehighlighter1_928_951_Closed_Image.style.display='inline'; Codehighlighter1_928_951_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img id=Codehighlighter1_928_951_Closed_Image onclick="this.style.display='none'; Codehighlighter1_928_951_Closed_Text.style.display='none'; Codehighlighter1_928_951_Open_Image.style.display='inline'; Codehighlighter1_928_951_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedSubBlock.gif">     </span><span id=Codehighlighter1_928_951_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_928_951_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">         </span><span>return</span> <span>new</span><span> Bat;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">     }</span></span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span>;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>//</span><span> concrete creater class</span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>class</span><span> BossCreater : </span><span>public</span><span> EnemyCreater<br><img id=Codehighlighter1_1023_1076_Open_Image onclick="this.style.display='none'; Codehighlighter1_1023_1076_Open_Text.style.display='none'; Codehighlighter1_1023_1076_Closed_Image.style.display='inline'; Codehighlighter1_1023_1076_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img id=Codehighlighter1_1023_1076_Closed_Image onclick="this.style.display='none'; Codehighlighter1_1023_1076_Closed_Text.style.display='none'; Codehighlighter1_1023_1076_Open_Image.style.display='inline'; Codehighlighter1_1023_1076_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span id=Codehighlighter1_1023_1076_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_1023_1076_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">     Enemy</span><span>*</span><span> CreateEnemy()<br><img id=Codehighlighter1_1050_1074_Open_Image onclick="this.style.display='none'; Codehighlighter1_1050_1074_Open_Text.style.display='none'; Codehighlighter1_1050_1074_Closed_Image.style.display='inline'; Codehighlighter1_1050_1074_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img id=Codehighlighter1_1050_1074_Closed_Image onclick="this.style.display='none'; Codehighlighter1_1050_1074_Closed_Text.style.display='none'; Codehighlighter1_1050_1074_Open_Image.style.display='inline'; Codehighlighter1_1050_1074_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedSubBlock.gif">     </span><span id=Codehighlighter1_1050_1074_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_1050_1074_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">         </span><span>return</span> <span>new</span><span> Boss;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">     }</span></span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span>;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/None.gif"></span><span>int</span><span> main(</span><span>int</span><span> argc, </span><span>char</span><span>*</span><span> argv[])<br><img id=Codehighlighter1_1114_1441_Open_Image onclick="this.style.display='none'; Codehighlighter1_1114_1441_Open_Text.style.display='none'; Codehighlighter1_1114_1441_Closed_Image.style.display='inline'; Codehighlighter1_1114_1441_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img id=Codehighlighter1_1114_1441_Closed_Image onclick="this.style.display='none'; Codehighlighter1_1114_1441_Closed_Text.style.display='none'; Codehighlighter1_1114_1441_Open_Image.style.display='inline'; Codehighlighter1_1114_1441_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span id=Codehighlighter1_1114_1441_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_1114_1441_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    EnemyCreater</span><span>*</span><span> enemyCreater[</span><span>3</span><span>];<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    enemyCreater[</span><span>0</span><span>] </span><span>=</span> <span>new</span><span> WolfCreater;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    enemyCreater[</span><span>1</span><span>] </span><span>=</span> <span>new</span><span> BatCreater;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    enemyCreater[</span><span>2</span><span>] </span><span>=</span> <span>new</span><span> BossCreater;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    Enemy</span><span>*</span><span> cruEnemy </span><span>=</span><span> NULL;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    </span><span>for</span><span>(</span><span>int</span><span> i  </span><span>=</span> <span>0</span><span>; i </span><span><</span> <span>3</span><span>; </span><span>++</span><span>i)<br><img id=Codehighlighter1_1316_1428_Open_Image onclick="this.style.display='none'; Codehighlighter1_1316_1428_Open_Text.style.display='none'; Codehighlighter1_1316_1428_Closed_Image.style.display='inline'; Codehighlighter1_1316_1428_Closed_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img id=Codehighlighter1_1316_1428_Closed_Image onclick="this.style.display='none'; Codehighlighter1_1316_1428_Closed_Text.style.display='none'; Codehighlighter1_1316_1428_Open_Image.style.display='inline'; Codehighlighter1_1316_1428_Open_Text.style.display='inline';" align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ContractedSubBlock.gif">    </span><span id=Codehighlighter1_1316_1428_Closed_Text><img src="http://blog.vckbase.com/Images/dot.gif"></span><span id=Codehighlighter1_1316_1428_Open_Text><span>{<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">        cruEnemy </span><span>=</span><span> enemyCreater[i].CreateEnemy();<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">        <br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">        cruEnemy</span><span>-></span><span>Draw();<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">        cruEnemy</span><span>-></span><span>attack();<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif"><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">        delete cruEnemy;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">    }</span></span><span><br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/InBlock.gif">    </span><span>return</span> <span>0</span><span>;<br><img align=top src="http://blog.vckbase.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span> </div> </div> <p align=left><br> </p> <p><font size=5><span><span>涓夛紟<span> </span></span>鐩稿叧妯″紡</span></font></p> <p align=left><span> Abstract Factory</span><span>緇忓父鐢ㄥ伐鍘傛柟娉曟潵瀹炵幇銆?/span></p> <p align=left><span> 宸ュ巶鏂規硶閫氬父鍦?/span><span>Template Methods</span><span>涓璋冪敤銆?/span></p> <p align=left><span><span>    </span>Prototypes</span><span>涓嶉渶瑕佸垱寤?/span><span>Creater</span><span>鐨勫瓙綾匯備絾鏄紝瀹冧滑閫氬父瑕佹眰涓涓拡瀵?/span><span>Product</span><span>綾葷殑</span><span>Initialize</span><span>鎿嶄綔銆?/span><span>Creater</span><span>浣跨敤</span><span>Initialize</span><span>鏉ュ垵濮嬪寲瀵硅薄銆傝?/span><span>Factory Method</span><span>涓嶉渶瑕佽繖鏍風殑鎿嶄綔銆?/span></p> <p align=left><span><span>                                                                                                                                                      </span></span></p> <p><strong> </strong></p> <p><font size=5><span><span>鍥涳紟<span> </span></span>鍙傝冩枃鐚?/span></font></p> <p><span> </span></p> <p><span> </span><font size=4><span>銆?font size=3>璁捐妯″紡綺捐В銆?/font></span></font><font size=3><span> </span><span>娓呭崕澶у鍑虹増紺撅紝</span><span> </span><span>鐔婃澃璇戙?/span></font></p> <p align=left><font size=3><span>  銆婅璁℃ā寮忓彲澶嶇敤闈㈠悜瀵硅薄杞歡鐨勫熀紜銆?/span><span> </span><span>鏈烘宸ヤ笟鍑虹増紺撅紝</span><span> </span><span>鍥涗漢鍥㈣憲銆?/span></font></p> <img src ="http://www.shnenglu.com/jack-wang/aggbug/70970.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/jack-wang/" target="_blank">灝忕帇</a> 2009-01-02 04:22 <a href="http://www.shnenglu.com/jack-wang/archive/2009/01/02/70970.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.shebianfen.cn" target="_blank">久久久久无码精品国产app</a>| <a href="http://www.hrbtwlh.cn" target="_blank">一本一本久久a久久综合精品蜜桃 一本一道久久综合狠狠老 </a>| <a href="http://www.duansisi.cn" target="_blank">久久精品国产精品亜洲毛片</a>| <a href="http://www.baby-bib.cn" target="_blank">久久久国产精华液</a>| <a href="http://www.anatolia.com.cn" target="_blank">日本久久久久亚洲中字幕</a>| <a href="http://www.yousms.cn" target="_blank">国内精品伊人久久久久网站</a>| <a href="http://www.klhome.com.cn" target="_blank">99久久免费国产精品特黄</a>| <a href="http://www.3xspace.cn" target="_blank">91精品国产综合久久四虎久久无码一级 </a>| <a href="http://www.bjztxdty.cn" target="_blank">久久婷婷国产剧情内射白浆</a>| <a href="http://www.qvuavh.cn" target="_blank">97久久精品人妻人人搡人人玩</a>| <a href="http://www.vqzt.cn" target="_blank">理论片午午伦夜理片久久</a>| <a href="http://www.ab1987.cn" target="_blank">国内精品伊人久久久久AV影院</a>| <a href="http://www.printinginfo.com.cn" target="_blank">欧美激情精品久久久久久</a>| <a href="http://www.zjjunyao.cn" target="_blank">72种姿势欧美久久久久大黄蕉</a>| <a href="http://www.hebeijiushan.cn" target="_blank">亚洲国产成人精品无码久久久久久综合 </a>| <a href="http://www.tyo8.cn" target="_blank">久久精品a亚洲国产v高清不卡</a>| <a href="http://www.ppzof.cn" target="_blank">久久国产综合精品五月天</a>| <a href="http://www.xbvz.cn" target="_blank">99久久久国产精品免费无卡顿</a>| <a href="http://www.carmap.com.cn" target="_blank">一本色道久久88综合日韩精品 </a>| <a href="http://www.zdjbc1.cn" target="_blank">国内精品久久久久影院日本</a>| <a href="http://www.mofeigzs.cn" target="_blank">亚洲精品成人久久久</a>| <a href="http://www.idccyy.cn" target="_blank">国产精品女同一区二区久久</a>| <a href="http://www.g172.cn" target="_blank">国产美女久久久</a>| <a href="http://www.ezftdhwp.cn" target="_blank">久久人人爽爽爽人久久久</a>| <a href="http://www.jiyiabc.cn" target="_blank">久久99热这里只有精品国产</a>| <a href="http://www.hjzz.net.cn" target="_blank">久久人妻少妇嫩草AV蜜桃</a>| <a href="http://www.tja4.cn" target="_blank">狠狠人妻久久久久久综合蜜桃 </a>| <a href="http://www.hygaiye.cn" target="_blank">久久亚洲精品无码观看不卡</a>| <a href="http://www.longfee.cn" target="_blank">久久国产精品久久久</a>| <a href="http://www.ihxc.cn" target="_blank">久久人人爽人人爽人人AV</a>| <a href="http://www.gybyz.cn" target="_blank">亚洲国产美女精品久久久久∴</a>| <a href="http://www.2tou.cn" target="_blank">中文成人无码精品久久久不卡</a>| <a href="http://www.yunshujia.cn" target="_blank">久久久久九国产精品</a>| <a href="http://www.rdyly1688.cn" target="_blank">国产激情久久久久影院老熟女免费</a>| <a href="http://www.hbsannong.com.cn" target="_blank">久久66热人妻偷产精品9</a>| <a href="http://www.unicity642.com.cn" target="_blank">亚洲中文字幕无码久久2020</a>| <a href="http://www.weikoo.cn" target="_blank">久久婷婷五月综合成人D啪</a>| <a href="http://www.i231.cn" target="_blank">国产成人精品综合久久久 </a>| <a href="http://www.88177.com.cn" target="_blank">国产福利电影一区二区三区久久久久成人精品综合 </a>| <a href="http://www.dzeuegg.cn" target="_blank">久久夜色精品国产欧美乱</a>| <a href="http://www.kaczw3.cn" target="_blank">77777亚洲午夜久久多喷</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>