设计模式
Carson_Zhuang
这个作者很懒,什么都没留下…
展开
-
设计模式的C语言应用-导言-第一章
【摘要】 软件编写模式是开发过程中的重要经验总结。灵活运用设计模式,一方面利于我们编写高质量的代码,另一方面也方便我们对代码进行维护。 设计模式最开始是针对面向对象语言提出的。经典的书如《设计模式:可复用面向对象软件的基础》,《java与模式》。《设计模式》的作者俗称”GOF”, gang of four,书中从面向对象的设计中精选出23个设计模式,这个也成了后来设计模式的范例。 C语言设计模式的...转载 2019-07-23 13:18:40 · 250 阅读 · 0 评论 -
设计模式的C语言应用-访问者模式-第九章
访问者模式(Visitor)介绍 把对象数据和操作分离,使操作可以独立演化。一旦这些操作需要修改的话,接受这个操作的数据结构可以保持不变。访问者模式是适用于那些数据结构比较稳定的模式。这个算是在C里面退化的不是那么厉害的一种模式思想, 或者说这种方法和C实现天然结合而不成为模式。因为C里面本来就很少将数据和访问方法封装在一起,数据的组织形式是数据结构的范畴,访问函数是代码流程设计的范畴。...转载 2019-07-23 13:34:40 · 110 阅读 · 0 评论 -
设计模式的C语言应用-外观模式-第八章
外观模式(Facade)介绍 外观模式也叫门面模式 外观模式就是提供一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,让子系统更容易使用。如下图,是使用外观模式后将子系统的使用变得更加简单。 说起来比较复杂,实际上在日常生活中经常能遇到。比如部门安排出差,需要去淘宝买出差洗漱用品,一共有4中东西要选择。洗面奶,牙膏,洗发水,润肤露。消费者可以自己一个买,也可以买套餐。把上图...转载 2019-07-23 13:33:24 · 97 阅读 · 0 评论 -
设计模式的C语言应用-建造者模式-第七章
模式介绍 建造者模式将复杂产品的构建过程封装分解在不同的方法中,使得创建过程非常清晰。它隔离了复杂产品 对象的创建和使用,使得相同的创建过程能够创建不同的产品。若几个 产品之间存在较大的差异,则不适用建造者模式 面向对象里的建造者模式,对于C语言,就无需这么复杂了。 比如用C构建一个网络数据包,需要构建Dmac域,smac域,长度域,IP等各层头。如果代码写在一个函数里,那么会很长很复杂。可以把...转载 2019-07-23 13:30:40 · 147 阅读 · 0 评论 -
设计模式的C语言应用-适配及系列模式-第六章
模式介绍:适配系列模式 在《设计模式》中提出的23种模式,其中适配器模式(Adapter),装饰者模式(Decorator),代理模式(Proxy)都属于原始功能到目标功能之间的桥梁。 在面向对象里的设计里,这3种由于类的继承等面向对象特性,有比较明显的不同。在C语言里这些区别明显减弱,而且在实际的开发中,也没有这么多约束,所以统称为适配系列模式。 以下引用设计模式的一些定义和说明。 适配器模式A...转载 2019-07-23 13:28:23 · 93 阅读 · 0 评论 -
设计模式的C语言应用-命令模式-第五章
模式介绍:命令模式(command) 命令模式的解释如下: 向对象发送一个请求,但是并不知道该请求的具体接收者是谁,具体的处理过程是如何的,只知道在程序运行中指定具体的请求接收者即可,对于这样将请求封装成对象的我们称之为命令模式。所以命令模式将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。同时命令模式支 持可撤销的操作。 命令模式的C语言实现也是非常显性的。...转载 2019-07-23 13:27:29 · 120 阅读 · 0 评论 -
设计模式的C语言应用-观察者模式-第四章
模式介绍:观察者模式(Observer) 观察者模式定义了对象之间的一对多依赖关系,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并且自动更新。在这里,发生改变的对象称之为观察目标,而被通知的对象称之为观察者。一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,所以么可以根据需要增加和删除观察者,使得系统更易于扩展。 图表 1观察者模式流程图 观察者模式在C语言里也是实现...转载 2019-07-23 13:25:22 · 113 阅读 · 0 评论 -
设计模式的C语言应用-责任链模式-第三章
模式介绍 责任链将需要触发的对象组成一条链,发送者将请求发给链的第一个接收者,并且沿着这条链传递,直到有一个对象来处理它或者直到最后也没有对象处理而留在链末尾端。 图表 1责任链模式流程图 责任链在C语言里也是实现形式非常明显的模式。最典型的责任链有linux内核的中断处理机制的纯软件部分和内核网络netfiler的HOOK机制。这两者均强化了责任链机制,重点在引入了责任优先级方法和增加了通过/...转载 2019-07-23 13:22:49 · 217 阅读 · 0 评论 -
设计模式的C语言应用-状态机模式-第二章
模式介绍 状态(state)模式是C语言实现相当常用的模式,也是能够在C语言***现出来的最显性的模式之一。在面向对象里,状态模式允许一个对象在内部状态改变的时候改变其行为。 状态用法很多,最常见的是状态机,分为无限状态机和有限状态机。 有限状态机 finite-state machine, FSM, 输入集合和输出集合都是有限的,并只有有限数目的状态。 一...转载 2019-07-23 13:20:29 · 172 阅读 · 0 评论 -
设计模式的C语言应用-非典型模式-第十章
上一章为止,C语言里显性和隐性的设计模式都已经介绍完了。 非典型模式章节开始介绍23种设计模式里在C语言退化的,不适用的。这些模式在使用中很难想到其实也是一种设计模式,代码的实现也没有什么特点。开发人员在设计时并不需要特意考虑这些模式,随遇而安即可。 了解这些模式,只是加强一下开发人员的全局观,在开发中能润物无声的应用和衍生。 原型模式(Prototype) 介绍 某些对象的结构比较复杂,但是我们...转载 2019-07-23 13:37:56 · 162 阅读 · 0 评论