幸福快乐fyf
这个作者很懒,什么都没留下…
展开
-
C语言和设计模式(3.10模板方法模式)
模板方法模式堪称局部代码分离关注点的神器。typedef int ( *ProcInnerA )();int ProcB( void ){ return 1;}int ProcC( void ){ return 2;}int Proc( ProcInnerA procInnerA ){ //第一段处理... int flag = ...原创 2020-03-29 21:22:20 · 400 阅读 · 0 评论 -
C语言和设计模式(3.9策略模式)
在软件配置阶段,根据开关状态的不同,我们给一个接口赋一个具体实现,在软件运行阶段,仅调用接口。//开关配置过程typedef void ( *ProcStrategy )( void );void ProcStrategyA( void ){ printf( "ProcStrategyA\r\n" );}void ProcStrategyB( void ){ pr...原创 2020-03-29 21:14:03 · 408 阅读 · 0 评论 -
C语言和设计模式(3.7观察者模式和3.1责任链模式)
观察者模式,可以理解为不同的主题1,主题2, ...主题n 对某个设备的状态感兴趣,需要在此设备的状态变更时,能及时高效的地被手机所感知,因此这些手机1,手机2,...手机n需要订阅该设备的状态,当设备状态变更时根据订阅列表逐个通知所有订阅此消息的手机。--也可称之为订阅发布模式。结构体如下:#define MAX_BINDING_NUMBER 10typedef st...原创 2020-03-29 20:58:30 · 345 阅读 · 0 评论 -
C语言和设计模式(3.2命令模式)
在命令模式里面,我们只需要维护一个命令列表就行了,而不需要关注解析函数本身。// 当心字节对齐的问题typedef struct { uint8_t head; uint8_t cmd; uint16_t length; uint8_t data[1];} package_t;static void parse_temperature( ...原创 2020-03-27 15:04:02 · 307 阅读 · 0 评论 -
C语言和设计模式(2.5外观模式)
外观模式也叫门面模式。外观模式就是提供一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,让子系统更容易使用。下面的create就是统一的接口。typedef struct _Computer { void ( *work )( void );} Computer;void work( void ){ printf( "work h...原创 2020-03-27 01:22:36 · 248 阅读 · 0 评论 -
C语言和设计模式(2.4装饰模式)
装饰模式是比较好玩,也比较有意义。其实就我个人看来,它和责任链还是蛮像的。只不过责任链是比较判断,而装饰器是迭代处理。装饰模式就是那种迭代处理的模式,关键在哪呢?我们可以看看如下函数。void wapper( int( *func )( int, int ), int num1, int num2 ){ printf( "进入装饰器\n" ); //类似回调函...原创 2020-03-26 21:28:06 · 284 阅读 · 0 评论 -
C语言和设计模式(2.3组合模式)
组合模式多个对象形成树形结构以表示“整体--部分”的结构层次。组合模式对单个对象(即叶子对象)和组合对象(即父对象)的使用具有一致性。 组合模式又可以称为“合成模式“ 或 ”整体-部分模式”,属于对象的结构型模式,它将对象组织到树形结构中,可以用来描述整体与部分的关系。链表的实现就是一个很好的例子:#define LEN 4struct Stude...原创 2020-03-21 22:06:49 · 424 阅读 · 0 评论 -
C语言和设计模式(2.2桥接模式)
将抽象部分与它的实现部分分离,使它们都可以独立地变化。考虑装操作系统,有多种配置的计算机,同样也有多款操作系统。如何运用桥接模式呢?可以将操作系统和计算机分别抽象出来,让它们各自发展,减少它们的耦合度。当然了,两者之间有标准的接口。这样设计,不论是对于计算机,还是操作系统都是非常有利的。在嵌入式C中,该模式用的很少,大概如下:typedef struct _CPU { ...原创 2020-03-21 21:27:27 · 334 阅读 · 0 评论 -
C语言和设计模式(2.1适配器模式)
1. 适配器模式 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。1.1. 适用性 你想使用一个已经存在的类,而它的接口不符合你的需求。 你想创建一个可以复用的类,该类可以与其它不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。 (仅适用于对象Adapter)你想使...原创 2020-03-21 19:58:40 · 426 阅读 · 0 评论 -
C语言和设计模式(1.5原型模式)
原型模式本质上说就是对当前数据进行复制。就像变戏法一样,一个鸽子变成了两个鸽子,两个鸽子变成了三个鸽子,这三个鸽子都是不同的对象,就这么一直变下去。在变的过程中,我们不需要考虑具体的数据类型。为什么呢?因为不同的数据有自己的复制类型。 抽象的结构体跟之前的建造模式的结构体一样。typedef struct _Computer { int type ; ...原创 2020-03-19 16:47:19 · 220 阅读 · 0 评论 -
C语言和设计模式(1.4单件模式)
单件模式算不上什么设计模式。最多也就是个技巧。typedef struct _DATA { int type;} DATA;void *get_data(){ static DATA *pData = NULL; if ( NULL != pData ) return pData; printf( "%s %d\r\n", ...原创 2020-03-19 15:22:31 · 197 阅读 · 0 评论 -
C语言设计模式(1.1建造者模式、1.2工厂模式、1.3抽象工厂模式)
建造这模式一般都是创建一个产品,不仅要把产品创建出来,还要关心这个产品的组成细节,组成过程。从代码上看,建造这模式在建造产品时,这个产品有很多方法,建造这模式会根据这些相同方法但是不同执行顺序建造出不同组成细节的产品。工厂模式也是创建一个产品,注重的是把这个产品创建出来就行,不关心产品的组成部分。从代码上看,工厂模式为一个方法,用这个方法直接生产出产品。建造者为一个产品的不同组成的抽象,工...原创 2020-03-19 11:19:35 · 400 阅读 · 0 评论 -
C语言设计模式(开头)
分类: 根据其目的(模式是用来做什么的)可分为创建型,结构型和行为型三种。 创建型主要用于创建对象。 结构型主要用于处理对象或类的组合。 行为型主要用于描述对象或类怎样交互和怎样分配职责。创建型模式如下:5个建造者模式、工厂模式、抽象工厂模式、单例模式、原型模式结构型模式如下:7个组合模式、适配器模式、装饰模式、外观模式...原创 2020-03-16 16:50:05 · 606 阅读 · 0 评论 -
各个平台固件端sdk优缺点
配网功能各个平台配网时序图参考应用笔记飞燕平台优点:配网成功率较高,配网方式丰富有一键配网,设备热点配网,手机热点配网,零配。缺点:简单易用。AWS和xlink平台使用mico自带的配网组件。优点:简单易用。缺点:配网成功率一般,配网方式单一只有一键配网。gome平台原创 2020-02-07 16:03:01 · 830 阅读 · 0 评论 -
Django个人博客开发(十二:ueditor paginator、十三:log user)
十二:ueditor paginator. A:django-admin startapp ueditor; B:add lblog/includes/paginator.htmlA:django-admin十三:log user. A:amend LOGGING in settings/settings.py,add user in settings/settings.py; B:add userA:amend LOGGING in settings/settings.py and fix bug原创 2017-03-25 18:24:03 · 1375 阅读 · 0 评论 -
Django个人博客开发(十:lblog/models.py lblog/index.html、十一:lsite index.html)
十:lblog/models.py lblog/index.html. A:add categories and tags in lblog/models.py; B:amend lblog/index.html,add GetHome() in lblog/views.pyA:add categories and tags in lblog/models.py;十一:lsite index.html. A:django-admin startapp lsite,add Focus in lsite/m原创 2017-03-25 18:23:47 · 1566 阅读 · 0 评论 -
Django个人博客开发(五-九)
将之前letflysite.com中的letflysite.com点击此到源码开发系列步骤迁移至此,一至四可以参照Django中文文档中的新手入门。五:detail comment、六:admin CommentForm、七:CommentStore CommentShow.、八:blogDetailShow、九:search css原创 2017-03-25 12:20:05 · 1918 阅读 · 0 评论 -
高并发网站架构与正态分布的前生今世
一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是转载 2016-10-07 19:24:36 · 1966 阅读 · 0 评论 -
微信开发(二)Django自媒体、查询类和问答类订阅号开发与python内置方法之前六种
一、查询:1、关键词拆分原创 2014-09-12 08:18:19 · 3782 阅读 · 0 评论 -
程序员的八个级别
在面试时,你可能会被经常问到“在未来5年,你想干什么?”,这可能是一个比较难回答的问题。在中国,答案一般可能会是Team leader,Manager,或是Architect,Specialist等,在中国,大家可能更多地觉得manager会是程序员的下一个目标,可是在国外,经理和程序员可能是两个不同的分支,Architect或Specialist 比经理来说更牛、代遇可能也更好,因为这些人的智商需要的更高。在著名的“Coding Horror”上出现了这样一篇文章,我把其转到这里(我并没有完全一模一样转载 2014-08-23 21:39:02 · 3317 阅读 · 0 评论