程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Doom3源代碼,code review 01

Doom3源代碼,code review 01

編輯:C++入門知識

其整體結構不怎麼面向對象

以一份全局指針的方式訪問某個系統模塊或管理器,一切沿襲自C版本的idTech設計,如下

// FileSystem.h

class idFileSystem {
public:
      void   Init( void ) = 0;
      void   Shutdown( void ) = 0;

      // methed...
      void   ListFiles( ... ) = 0;

};

extern idFileSystem*   fileSystem;

// FileSystem.cpp
#include "FileSystem"

class idFileSystemLocal: public idFileSystem {
public:
      void   Init( void );
      void   Shutdown( void );

      // methed...
      void   ListFiles( ... );

};

idFileSystemLocal   fileSystemInstance;
idFileSystem*   fileSystem = &fileSystemInstance;

void   idFileSystemLocal::Init( void ) {
}

void   idFileSystemLocal::Shutdown( void ) {
}

// methed...
void   idFileSystemLocal::ListFiles( ... ) {
}

然後其使用端代碼如下:
fileSysem->Init();

fileSystem->ListFile( files, .... );

fileSystem->Shutdown();

這種手法大量運用,很好的達到了子系統間的解耦!!
裡面的idCommon, idCmdSystem, idRenderSystem, idSoundSystem, idCVarSystem, idGame等,都是這一套

簡單而有效的tip,這樣以後的某個模塊要做成動態庫版本,只需通過獲得這個接口指針就可


摘自 Corner Zhang

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