看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) BCB 小的不才 ,最近碰上一個設計的問題自己想的方式有點怪 ,想請教大師們有沒有 比較好的設計方式 ,主程式Main ,Scheduler處理各種流程 iniClass可以讀寫ini檔案 ,BaseClass 基底動態連結使用 以下例子是我目前做法的概念 : //--------------------------- TBaseClass { public: TBaseClass() {}; ~TBaseClass(){}; void DoSomething() = 0; }; //--------------------------- TScheduler { public: TBaseClass *iniClass_; void Add(TBaseClass* bc){ iniClass_ = bc; } TScheduler() {} ~TScheduler(){} }; //--------------------------- //******gloabl function****** TScheduler* gloablScheduler; TScheduler* GetScheduler (){ return gloablScheduler; } void SetScheduler (TScheduler* Scheduler){ gloablScheduler = Scheduler; } //--------------------------- iniClass : public TBaseClass{ iniClass(){ GetScheduler()->Add(this); } ~iniClass() void DoSomething() { //實作 } } //--------------------------- TMain { TScheduler* Scheduler_; public: TMain() : Scheduler( new TScheduler() ){ SetScheduler(Scheduler_); } ~Main(){ delete Scheduler_; } } //--------------------------- 用意是想把iniClass做成一個模組bpl可以掛載在主程式中 這樣Main中的就可以Scheduler_->iniClass_->DoSomething(); 因為會想掛載很多模組 ,在iniClass建構中啟動個Timer去延遲個2~3秒 再去GetScheduler()->Add(this)防止建構的前後順序去提早去GetScheduler()出來 產生問題 ,不知這方式妥不妥當 ? 以上落落長.... 我想請問的是這是普遍模組之間的溝通方式嗎 ? 還有就是建構順序的問題 ,除了用Timer去延遲模組的掛載 ,還有其他方式嗎 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.124.107.139
DEATHX:這篇轉linuxdev版應該能得到意見。 11/07 07:38
illjay0404:轉錄至看板 LinuxDev 11/07 10:07
illjay0404:好的, 感謝XD 11/07 10:08
zenixls2:跟linuxdev基本上沒直接關係吧...比較像是design pattern 11/08 09:30