大佬教程收集整理的这篇文章主要介绍了c – 单身人士的替代方案,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
resource Manager Render ENGIne Events Manager Factory etc
这些单身人士从一个到另一个有很多电话.我将采用事件管理器示例用法:
>从Listener派生的任何对象都可以将itsel添加为某些事件的侦听器,就像这个Eventsmanager-> RegisterListener(this,& someClass :: SomeMethod); (事件类型由SomeMethod参数推导)
>任何其他对象都可以触发像这样的事件Eventsmanager-> PushEvent(SomeEvent);
在一些同步之后,事件将到达所有侦听器.当Eventsmanager是singleton时,这是一个非常简单的用法.
类似的行为与其他单身人士有关.我想删除单例,但我的主要问题是我想从现在的“用户观点”保持代码简单易用.我阅读了一些这样做的技巧,但大多数使类的初始化/使用更加复杂.我知道这个主题在SO上被多次讨论,但没有答案适合我的编程理念 – 尽可能保持一切尽可能简单.
我不希望我的类有复杂的定义/初始化,如:
someClass<EventManager,RenderENGIne,...>
要么
someClass::someClass(Eventsmanager,RenderENGIne...)
你能就这个话题给我一些建议吗?
对于EventManager的具体示例;您的Listener基类可以提供寄存器方法和派生类可以调用的push方法的实现.
骨架定义:
class Listener { public: virtual void Receivemessage( ... ) = 0; protected: void Register() { GetEventManagerSomehow()->RegisterListener( this,etc ); } void PushEvent( etc ) { GetEventManagerSomehow()->PushEvent( etc ); } }
以上是大佬教程为你收集整理的c – 单身人士的替代方案全部内容,希望文章能够帮你解决c – 单身人士的替代方案所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。