[問題] 模組之間的溝通
開發平台(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
11/07 07:38, 1F
※ illjay0404:轉錄至看板 LinuxDev 11/07 10:07
→
11/07 10:08, , 2F
11/07 10:08, 2F
→
11/08 09:30, , 3F
11/08 09:30, 3F