关于数据同步,窗口同步之类
最近經(jīng)常遇到關(guān)于數(shù)據(jù)同步或者說窗口同步之類的問題。比如在對話框A中,點(diǎn)擊按鈕之后彈出對話框B。在對話框B做了某個(gè)操作之后,對話框A想立即知道或者知道之后做出某些反應(yīng)。對于類似這樣的問題,一般第一反應(yīng)應(yīng)該就是想到用發(fā)消息的方式來處理,但是有時(shí)候用發(fā)消息這種方式會很麻煩,特別是這兩個(gè)對話框不在一個(gè)項(xiàng)目中,或者他們都只是很底層的一個(gè)對話框的時(shí)候。這個(gè)時(shí)候可以用C++中類的繼承,多態(tài)來解決這個(gè)問題。大致的思路如下:
1.定義一個(gè)抽象類作為基類(其實(shí)不是抽象類也行);
1 class Base 2 { 3 virtual void event()=0; 4 }這里的事件event就是對話框A要做出的反應(yīng)
2.定義對話框A
class A:public Base {virtual void event(); }這里讓A繼承Base,并自己寫好關(guān)于event的實(shí)現(xiàn),就是具體做出什么反應(yīng)。
3.定義對話框B
class B {void event1(Base *p); }這里將基類Base的指針作為形參,在實(shí)際調(diào)用的時(shí)候?qū)的指針傳進(jìn)來即可。這個(gè)傳參的過程可以放到構(gòu)造函數(shù)中,也可以直接放到具體事件中。
void B::event1(Base* p) {p->event(); }這里就類似于反饋給A了,讓A做出反應(yīng)。
轉(zhuǎn)載于:https://www.cnblogs.com/gig886/p/5028563.html
總結(jié)
以上是生活随笔為你收集整理的关于数据同步,窗口同步之类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS WKWebView ios9以上
- 下一篇: activity切换动画特效