- 博客(13)
- 收藏
- 关注
原创 C常用设计模式——观察者模式
文章首发于知乎专栏:https://zhuanlan.zhihu.com/c_1136684995157577728个人公众号TarysThink观察者(Observer)模式,观察者是什么人,是一个冷眼观瞧的人,这个人距离事件的中心很远,也就是说观察者与信息发布者之间能够解耦,这应该是观察者模式的核心。有这么个场景,A是一个模块,A模块内有一个数据a,这个数据a是需要模块B...
2019-09-25 21:18:45 1045
原创 C常用设计模式——状态模式
文章首发于知乎专栏:https://zhuanlan.zhihu.com/c_1136684995157577728个人公众号TarysThink状态(State)模式,就是状态机嘛。状态机很常见,我们总能遇到带条件的状态跳转场景,比如红绿灯,绿灯亮的状态之后一定要进行关绿灯打开黄灯,进入下一个状态黄灯亮,再比如收音机,关闭状态的下一个动作一定是开机,收音机进入开机状态。那么状态...
2019-09-25 21:18:03 899 1
原创 C常用设计模式——迭代器模式(二)
文章首发于知乎专栏:https://zhuanlan.zhihu.com/c_1136684995157577728个人公众号TarysThink上一篇迭代器模式的文章,讲了C语言中关于数据结构遍历最常用的手法,掌握了上篇基本可以成为一个在这个方面的老手了,本篇再深入讲一下上篇所谓迭代器模式与设计模式里的迭代器模式还有多少差距。迭代器模式提供了一套遍历数据结构的方法,这个方法...
2019-09-25 21:17:13 230
原创 C常用设计模式——迭代器模式
文章首发于知乎专栏:https://zhuanlan.zhihu.com/c_1136684995157577728个人公众号TarysThink模板方法模式之后讲迭代器模式(Iterator)再合适不过。我始终认为,迭代器模式是一种特殊的模板方法模式。看这一篇有困难的同学最好回头再看一下上一篇:模板方法模式,当然,我也会从头开始讲故事,不必过分担心必须有模板方法模式的基础。...
2019-09-25 21:16:24 372
原创 结构体前置声明引发的一个编译问题
文章首发于知乎专栏:https://zhuanlan.zhihu.com/c_1136684995157577728个人公众号TarysThink遇到这么一个编译错误:有三个文件//a.htypedef struct{ int world;}hello;typedef struct hello * phello;int func(phello para);...
2019-09-25 21:14:55 624
原创 C常用设计模式——模板方法模式
C常用设计模式系列,我们是以策略模式开头的,因为它太简单太实用了,本篇讲的模板方法模式(Template Method),同样简单又实用。模板方法模式堪称局部代码分离关注点的神器。代码里有个流程A,此时有个需求,要求在流程A的上下两部分中间,插入一个功能相对独立的流程B。这个需求又让程序员宋江开发,宋江画了下面这么个代码流程模型:宋江函数封装的功力可是很强的,他把流程A做成了一个函数,...
2019-09-06 07:25:55 270
原创 C常用设计模式——策略模式
写之前说几句话。用C语言写代码的同学看到“设计模式”不要敬而远之,借“设计模式是面向对象的语言才需要关心的东西”之名,行偷懒之实。学习设计模式,学的是设计模式里的设计思想,学习它以怎样的角度切入来实现低耦合。C常用设计模式系列,我会以C语言常用的概念来描述这些设计模式。本篇讲策略模式。如图所示,C代码是过程式的,可以用“框架流程”一以贯之的,在某一个处理流程的结点处,有一个策略...
2019-09-01 20:47:18 814
原创 lighting talk(下)——简单设计四原则、设计模式
上篇讲了一些开放性问题,本篇讨论一些闭合性问题。所谓闭合性问题,是指有一定标准答案的问题。4. 你对简单设计四原则的认识是怎么样的?如何利用它指导平时的开发?(1)通过测试这句话说的是代码要满足功能正确性。这一点是最重要的,可运行、符合用户需求的代码才能带来价值。这句话说起来简单,仔细想一下,可以提出一个问题,测试覆盖100%分支了吗。实际开发中,测试用例设计来自测试部门,测试部门是拿...
2019-09-01 20:46:42 795
原创 Lighting Talk
今年的团队TL(tech leader)认证考试已落下帷幕。相比于去年,今年多了一个lighting talk环节。lighting talk在做什么?有两种形式,第一种所有人一起抽签抽题目,然后思考几分钟,开始讲;第二种所有人都拿到相同的题目,在规定时间内一起写。第二种是比第一种容易的,对于考试者能有更多的时间思考,对于考官也能减轻些出题的压力。lighting talk考察什么?考察平...
2019-08-25 13:48:16 430
原创 模块化
模块化是什么,C项目里的模块化是什么意思。先说模块和组件的关系,组件好理解,组件是独立部署和发布的单元,相同组件内的代码应该有相同的变化和发布频率。模块是组件内功能内聚的单元,这句话很贴切,但,这是一句废话,说得太大,不具体就没有任何意义。我们看下面这个图,这是组件内frame与模块的依赖与调用关系的现状图。粗线表示frame流程,红线表示模块在frame上的调用点,细黑线表示模块之间的调...
2019-08-18 23:31:58 365
原创 VS2010 ADO远程访问sql server 2008方法总结
将服务器设置为相应IP和端口,对应的ADO连接的字段如下:Data Source=172.16.0.65\\SQLEXPRESS,1433;最关键的是,需要服务器和防火墙做若干设置,如下图所示的配置管理器,需要将browser启动,最好为自动运行。在SQLEXPRESS协议中,启动TCP/UDP服务,修改IP设置中的172.16.0.65和127.0.0.1,把手动端口设置
2015-11-17 15:37:47 2298
转载 you must restart adb and eclipse的相关解决办法
1,关闭eclipse并在进程中杀掉adb.exe,然后重启。2,如有真机连接,拔掉真机,重复1的步骤,3,关掉eclipse,然后在命令行运行如下命令 adb kill-server adb start-server 然后重启eclipse还有别的类似的办法就不再这里多说了,我的问题最根本其实是端口5037被占
2014-09-29 14:53:57 530
转载 Eclipse导入Android项目的正确方法
选择Existing Projects into Workspace:浏览并选定项目所在目录:注意,如果你之前没将项目复制到workspace目录,那么这时也可以通过此窗口中的这个选项让Eclipse帮你把项目复制到workspace中去:
2014-09-29 14:48:57 565
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人