程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 設計模式之簡單工廠模式,C++實現

設計模式之簡單工廠模式,C++實現

編輯:C++入門知識


只上圖和代碼吧


[cpp] 
#include "stdafx.h" 
 #include  <windows.h> 
  
  
 enum EOperator 
 { 
    ADD_OPER, 
    SUB_OPER 
 }; 
  
 class MathOperator 
 { 
 public: 
    MathOperator(){;} 
    virtual ~MathOperator(){;} 
  
    void SetMember(int first, int second) 
    { 
        m_nFirst = first; 
        m_nSecond = second; 
    } 
    virtual int GetResult() = 0; 
 protected: 
    int m_nFirst; 
    int m_nSecond; 
 }; 
  
  
 class AddOperator:public MathOperator 
 { 
 public: 
    int GetResult() 
    { 
        return m_nFirst + m_nSecond; 
    } 
 }; 
  
  
 class SubOperator:public MathOperator 
 { 
 public: 
    int GetResult() 
    { 
        return m_nFirst - m_nSecond; 
    } 
 }; 
  
 class OperatorFactory 
 { 
 public: 
    MathOperator *CreateOperator(EOperator eOper) 
    { 
        MathOperator *pOper = NULL; 
        switch (eOper) 
        { 
        case ADD_OPER: 
            pOper = new AddOperator(); 
            break; 
        case SUB_OPER: 
            pOper = new SubOperator(); 
            break; 
        } 
        return pOper; 
    } 
 }; 
  
  
 int _tmain(int argc, _TCHAR* argv[]) 
 { 
    OperatorFactory OFactrory; 
    MathOperator *pOper = OFactrory.CreateOperator(ADD_OPER); 
    pOper->SetMember(2, 3); 
    int nResult = pOper->GetResult(); 
    if (pOper) 
    { 
        delete pOper; 
        pOper = NULL; 
    } 
    return 0; 
 } 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved