![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
s2: 设计模式
涛歌依旧
毕业后就职于华为和腾讯
展开
-
单例中的堆内存是否需要释放? 何时释放?
对于大多数程序员来说, 单例模式几乎就是第一个熟悉的设计模式。 我们看到单例模式中经常有new, 但没有看见delete, 这样不会内存泄露吗? 于是, 我想问,单例中的堆内存是否需要释放? 何时释放? 先来看看我之前写过的一篇单例释放的问题:http://www.szmykybj.com/stpeace/article/details/46564309《绝对不要在析构函数中...原创 2017-04-02 17:37:15 · 12840 阅读 · 1 评论 -
C语言实现简单有限状态机(FSM)
转载地址:https://www.jianshu.com/p/917c0fb8778b?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation 有限状态机(finite state machine)简称FSM,表示有限个状态及在这些状...转载 2019-04-13 08:03:03 · 8370 阅读 · 11 评论 -
简单工厂模式的go代码示例
简单工厂模式很简单,工厂负责生产对象, 来看下:package mainimport ( "fmt")type BaseIntf interface { Operate(int, int) int}type AddOperate struct {}func (this *AddOperate)Operate(rhs int, lhs in...原创 2018-11-09 21:32:25 · 5627 阅读 · 1 评论 -
戏说消息队列的利弊
转载地址:https://www.zhihu.com/question/34243607什么是消息队列?小红是小明的姐姐。小红希望小明多读书,常寻找好书给小明看,之前的方式是这样:小红问小明什么时候有空,把书给小明送去,并亲眼监督小明读完书才走。久而久之,两人都觉得麻烦。后来的方式改成了:小红对小明说「我放到书架上的书你都要看」,然后小红转载 2018-01-29 20:46:56 · 8848 阅读 · 8 评论 -
数据库连接池的好处
转载地址:http://yplsoft.iteye.com/blog/156697 注意: 红色字体是我加的。 对于一个简单的数据库应用,由于对于数据库的访问不是很频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是对于一个复杂的数据库应用,情况就完全不同了。频繁的建立、关闭连接,会极大的转载 2017-11-30 22:39:43 · 9741 阅读 · 0 评论 -
一个精妙单例CSingleton的赏析------逐渐抽象为单例CSingleton模板
来看看一个精妙单例:#include using namespace std;class CSingleton {public: static int* getInstance();};int* CSingleton::getInstance(){ static int instance; return &instance;}int main() { *CSi原创 2017-04-02 18:23:36 · 8499 阅读 · 1 评论 -
修改封闭、扩展开放原则
最近有位新同学想修改某一接口, 以满足特定需求, 后台这个方案被他们组的老鸟否定。 于是, 我想到了一句话: 修改封闭、扩展开放!原创 2016-07-15 22:25:34 · 7805 阅读 · 0 评论 -
看到这种单例, 也是醉了
好吧, 第一次见这种单例, 来瞧瞧:#include using namespace std;class A {private: A() // 之所以设置为private, 是因为为了防止外部直接生成对象 { cout << "A" << endl; }public: // 看到这种单例, 也是醉了。 不管咋样, 又多知道了一种方式 static原创 2014-12-03 22:33:24 · 7365 阅读 · 0 评论 -
你能否真正搞定单例?
笔试面试让写个单例,不一定每个人都能搞出来。我们以前也谈论过单例,现在继续来看看: 可以写为:#include using namespace std;class A{private: int x; static A *pInstance;public: void set(int m) { x = m; } int get() { ret原创 2014-03-16 00:27:58 · 7723 阅读 · 1 评论 -
MVC模式(简单模拟计算器)
MVC模式实现了职责的分离,便于复用,在不是很复杂的程序中,通常不需要涉及Model部分,下面是一个最简单的计算器的设计. 程序1中业务控制与显示杂糅了,程序2中实现了很好的分离.程序1:using System;class Example{ static void Main() { int x = Convert.ToInt32(Cons原创 2012-10-20 21:41:51 · 12188 阅读 · 3 评论 -
MVC模式(简单模拟QQ登录界面)
QQ登录界面有这样一个选项:记住账号. 这个账号保存在本地的配置文件中,下次登录的时候,用户就不需要重新输入密码, 那么这个功能是如何实现的呢?下面用C#给出模拟功能的实现,旨在阐述一个重要的设计模式: MVC模式. MVC模式好处多多,详见如下代码: (需要特别说明的是,用户的QQ号码实际上是保存在硬盘文件中的,即使断电,用户在第二次登录时也可以获得QQ号码。为了简便起见,下面的模原创 2012-10-20 20:21:06 · 11846 阅读 · 0 评论 -
单例模式(某公司校园招聘笔试题目)
单例(singleton)模式, 顾名思义,也就是说类只有一个实例。在计划生育很普遍的今天,我们很容易理解单例模式:首先判断这个家庭是否生了一个孩子,如果没有生,则允许这个家庭生一个,如果已经生了一个,就不能再生孩子了。 如果外界需要知道这个家庭的信息,那么只需要问该家庭的一个孩子就可以了。如果外界需要10询问这个家庭的信息,没有必要问这个家庭的10个孩子。相反,只需要10次问同一个原创 2012-10-20 15:23:17 · 9306 阅读 · 0 评论 -
错误码方式 VS 异常机制
先来看一段代码, 是不是很眼熟:package main import ( "fmt" "errors")func low(money int) (int, error) { if money < 1 { return money, errors.New(fmt.Sprintf("invalid 1---> %d", money)) } r...原创 2019-08-09 19:51:53 · 2485 阅读 · 1 评论