![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
hpjx1987
这个作者很懒,什么都没留下…
展开
-
观察者模式
定义:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都可以得到通知并自动更新。 体会:说白了就是一个对象发生变化的时候去通知相关的对象。比如:一个典型的客户端,数据库+界面。当数据库数据变化时,界面肯定也需要进行刷新。如何来通知界面进行刷新呢?这时候就可以考虑采用观察者模式。当然这用别的方法也能办到,在QT里就可以通过发信号来发送通知。实现如下:原创 2014-03-02 22:22:48 · 665 阅读 · 0 评论 -
迭代器模式
定义:提供一种方法顺序访问一个聚合对象中各个元素,而又不暴露该对象的内部表示。体会:迭代器在STL里面用到很多,vector, list都有迭代器,用的时候,我并不关心里面是怎么实现的,我只是循环地读取里面的值就可以了。实现:原创 2014-05-06 22:39:22 · 560 阅读 · 0 评论 -
单例模式
定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。体会:用静态成员来实现,因为那个是全局的,如果为空则创建,不为空则返回当前的对象。为了避免出现创建多个对象,所以会把构造函数声明成私有的。总结起来就是三点:1:提供私有的构造函数。2:类的定义中有一个静态私有对象。3:该类提供一个静态的共有函数用于创建或获取它本身的静态私有对象。实现:h文件: class CSinglet原创 2014-04-22 22:47:09 · 574 阅读 · 0 评论 -
适配者模式-Qt Model的转接
在Qt中,通过写model, 让TableView呈现不同的样式。有时候会遇到比较蛋疼的局面。之前写的一个Model很适合,但是不支树形显示。现在的需求就是要显示树形,其它的跟之前的一样。这种情况下,是重写一个呢,还是想想别的办法。 有两种思路可以考虑,一个是派生,一个是适配。派生的一个Model,并要显示树形的话,很难实现,毕竟要重写index, parent等方法。用适配的方式来实现原创 2014-12-30 21:37:37 · 911 阅读 · 0 评论