Fw: [問題] 模組之間的溝通

看板LinuxDev作者 (尋找值得愛的人~*)時間13年前 (2012/11/07 10:07), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
※ [本文轉錄自 C_and_CPP 看板 #1GcCsKvk ] 作者: illjay0404 (尋找值得愛的人~*) 看板: C_and_CPP 標題: [問題] 模組之間的溝通 時間: Tue Nov 6 16:42:58 2012 開發平台(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

11/07 07:38, , 1F
這篇轉linuxdev版應該能得到意見。
11/07 07:38, 1F
※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: illjay0404 (59.124.107.139), 時間: 11/07/2012 10:07:10

11/08 20:07, , 2F
使用mutex,semaphore等同步工具
11/08 20:07, 2F
文章代碼(AID): #1GcS9FWF (LinuxDev)
文章代碼(AID): #1GcS9FWF (LinuxDev)