学习 chrome 中的 delegate

来源:互联网 发布:ubuntu tcp调试工具 编辑:程序博客网 时间:2024/05/01 12:11

 

 

将一组需要抽象的操作放到一个nested的抽象类中,将具体实现在类外继承相应的抽象类,实现相应的具体操作。

 

chrome 中

Chrome中已经用烂了改伎俩,基本上所有代码中都能看见此手法。

一个类的内部操作委托给外面的一个对象,通过抽象接口。

如上面代码所示,MessagePump把  DoWork  DoDelayWork, DoIdelWork通过MessagePump::Deletgate 的接口委托给M essageLoop去处理,这样比较好的解决了代码间的耦合问题。

类似伎俩在消息系统这块还有很多:

MessagePump::Watcher           《对应handle的事件处理》

MessagePump::Observer          《监视Windows消息的处理》 

MessagePump::Dispatcher         《Windows本地消息的分派》

MessageLoop::DestructionObserver 《用来跟踪MessageLoop的稀构》

这些都是委托的接口,只不过名字不像MessagePump::Deletgate这么张扬而已。

把委托的接口类写到类的内部,

对于chrome这种写法我是我以前没有考虑过的,

是个非常清晰的代码风格,

coder一看就能知道这个委托接口是干吗的

以上是桥接模式

 

用PlicyBase的设计方法修改

 

 

 

原创粉丝点击