![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 78
BearPot
你太容易因为别人优秀而焦虑 你需要的是平静的把自己的事做好
个人网站:http://www.potba.cn/
展开
-
常用设计模式总结
复习到设计模式的时候写的一些demo代码回头可以看看单例的几种比较简单就没写了,专栏有。原创 2023-02-22 10:52:28 · 677 阅读 · 0 评论 -
多线程下对象的析构问题
让判断线程是否结束,结束了线程join,给个bool类型stop用来判断所有线程走完没,走完了,修改析构函数让他为真,把线程对象至为空,当工作线程看到stop为真了,直接退出。程序崩溃--->在打印完毕之后,懒汉模式创建的单例对象已经被析构了,但是工作线程里的pm已经没有资源了工作线程就会奔溃。不过这么写针对这个用例来说能走,不过要是再加个funa线程函数,主线程一次走两个,走多个就会出现问题了。懒汉模式:需要的时候new一个对象,不需要的时候delete。懒汉模式,加锁,线程安全。原创 2022-12-24 21:45:09 · 1017 阅读 · 8 评论 -
Summary单例模式
如果把instance换成类对象的指针,不在拷贝副本节省资源,可以减少全局数据区的占用量,把单例对象放在了堆中,不过析构不会被调用,释放不了资源。但是当线程很少,甚至是没有用到这个单例类的时候,就显得得不偿失了,它占用的空间问题就体现出来了,这是一种空间换时间的模式。内部的静态类只有第一次使用的时候才会被装载,这个其实是栈上创建的实例的是个类对象,刚开始链接粘的是在堆上创建的因为我们实例的是类对象的指针,懒汉模式适用于线程比较少的场景,因为线程一旦多,加锁的开销就会体现出来(不过我上面写的。原创 2022-12-27 20:33:50 · 275 阅读 · 1 评论 -
一步一步改写Observer观察者模式
2. 运行示例程序,可以看到当原始数据 Subject 处于状态 “false” 时候,依赖于它的两个观察者都显示 “false”,当原始数据状态改变为 “true” 的时候,依赖于它的两个观察者也都改变为“true”。如果说员工没有加班,上下班不需要请示,那么秘书这个通知者就以weak_ptr去管理,因为有可能秘书下班了,员工还没有下班,员工的存活秘书管不着。具体的通知者根据具体要求有着自己的Notify通知的函数,同理不同的观察者对于响应通知之后有着自己不同的update更新方式。的操作Notify。原创 2022-12-30 17:00:02 · 439 阅读 · 0 评论