[問題] 模組之間的溝通

看板C_and_CPP作者 (尋找值得愛的人~*)時間11年前 (2012/11/06 16:43), 編輯推噓0(003)
留言3則, 3人參與, 最新討論串1/1
開發平台(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
illjay0404:轉錄至看板 LinuxDev 11/07 10:07

11/07 10:08, , 2F
好的, 感謝XD
11/07 10:08, 2F

11/08 09:30, , 3F
跟linuxdev基本上沒直接關係吧...比較像是design pattern
11/08 09:30, 3F
文章代碼(AID): #1GcCsKvk (C_and_CPP)