分类:

根据其目的(模式是用来做什么的)可分为创建型,结构型和行为型三种。

  • 创建型主要用于创建对象。
  • 结构型主要用于处理对象或类的组合。
  • 行为型主要用于描述对象或类怎样交互和怎样分配职责。

创建型模式如下:5个

建造者模式、工厂模式、抽象工厂模式、单例模式、原型模式

结构型模式如下:7个

组合模式、适配器模式、装饰模式、外观模式、桥接模式、代理模式、享元模式

行为型模式如下:11个

观察者模式、状态模式、责任链模式、访问者模式、命令模式、模版模式、策略模式、迭代器模式、解释器模式、中介者模式、备忘录模式

下面列举linux内核哪些地方用到了以上模式

创建型
 
Object Pool
 
Object Pool模式可以提升性能,尤其是在对象的分配、初始化成本高,使用频率高
但使用时间短的情况下。对象池可以设置对象池的大小和回收时间缓存预分配的对象。
NT和Linux都有简单的预分配缓存对象的机制,也就是Lookaside Cache机制。NT的
对象管理器使用延迟删除和垃圾回收机制实现真正意义上的对象池。在调用NtClose
关闭对象之后,对象使用的内存空间并不马上回收,而是挂在已删除对象列表之中,
并且被设置为删除。在新生成对象时&#x

C语言设计模式(开头)相关推荐

  1. 非关语言: 设计模式

    http://www.riabook.cn/doc/designpattern/ From Gossip@caterpillar 非关语言: 设计模式 程式设计是思维具体化的一种方式,是思考如何解决问 ...

  2. 语言与golang语言运行速度_Golang语言情怀第13期 Go 语言设计模式 介绍

    设计模式是什么 俗话说:站在别人的肩膀上,我们会看得更远.设计模式的出现可以让我们站在前人的肩膀上,通过一些成熟的设计方案来指导新项目的开发和设计,以便于我们开发出具有更好的灵活性和可扩展性,也更易于 ...

  3. C语言设计模式——命令模式

    C语言设计模式--命令模式 好处:让代码清晰明了,容易添加和删除,易维护. 哪些地方会用到命令模式?(列出几个常见的例子) 1.按键处理,每个按键按下得到一个索引(指的就是命令),一个按键对应一个处理 ...

  4. 摘抄各类语言设计模式(仅做笔记)

    摘抄各类语言设计模式 一.继承,封装,多态 1.继承性 C 2.封装性 C 3.多态 C 二.六大设计原则 1.单一职责原则(Single Responsibility Principle,简称SRP ...

  5. c语言 编程结束怎么表示,c语言开头(c语言编程开头和结束代码)

    就是我想在开头加上对程序的描述,如程序功能,作者,时间等,标准的格式. 在你要加说明的地方旁 /*说明内容*/ 就行了 为什么我在DEVC++上按C语言程序设计里的列子输入 main() { prin ...

  6. c语言设计模式代码完整实现-状态机模式

    模式介绍 状态(state)模式是C语言实现相当常用的模式,也是能够在C语言***现出来的最显性的模式之一.在面向对象里,状态模式允许一个对象在内部状态改变的时候改变其行为. 状态用法很多,最常见的是 ...

  7. c语言编译开头,#includestdio.h,为什么C语言代码开头都有这一行?

    作者 闫小林 白天搬砖,晚上做梦.我有故事,你有酒么? #include是在程序编译之前要进行处理的的内容,因此也称为预处理命令. 先介绍下include,include是一个计算机专业术语,指C/C ...

  8. c语言s开头的函数以及作用,C语言函数大全-s开头-完整版.doc

    C语言函数大全-s开头-完整版 C语言函数大全(s开头) 函数名: sbrk 功能: 改变数据段空间位置 用法: char *sbrk(int incr); 程序例: #include#include ...

  9. c语言开头的作用是什么,C语言为什么开头都加;#includestdio.h有什么作用?

    stdio.h 哪些 是 头文件,里面包含一些常用的 函数 例如 stdio.h里面有 scanf();printf()这些函数,没有stdio就不能用这些函数 在C语言家族程序中,头文件被大量使用. ...

最新文章

  1. NHibernate 2.0 Beta 1 Released和一些工具
  2. 用链栈实现简易四则运算计算器(php版)
  3. CheLunTan.Net无需注册同样享有发帖和回帖权利
  4. 第1课 - make和makefile
  5. Visio对象插入Word后周围空白过大
  6. 百度地图的两套JavaScript API
  7. sap权限激活_如何激活凭证流Fiori应用
  8. ByteArray、16进制、字符串之间的转换
  9. 01.HTML基础命令笔记
  10. SpringBoot报错:If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
  11. Uncaught TypeError: Cannot read property ‘clientWidth‘ of null报错
  12. AppStore刷榜那些事儿:猪,也是这么想的
  13. 实例 20 重定向输出流实现程序日志
  14. 解决NSTimer循环引用
  15. [CareerCup] 7.6 The Line Passes the Most Number of Points 经过最多点的直线
  16. webservice 安全性 对外_WebService的安全性讨论【身份识别】
  17. 电子申报系统服务器地址,广东企业电子申报管理系统62使用说明-广东税务局.PDF...
  18. 最速下降法及案例分析(含MATLAB代码)
  19. Win10 Win7 查看系统环境变量
  20. python列表元组字典

热门文章

  1. Android从开源到碎片化 开发者叛离的真相
  2. 基于WSL2+NVIDIA Docker的开发环境最佳实践
  3. 光学知识之双折射现象解析
  4. handler原子锁_OC的底层并发API
  5. Linux NFS网络文件系统
  6. java使用selenium实现模拟浏览器操作API大全 模拟登录
  7. JAVA 2乘以8 方法_Java中用最有效率的方法算出2乘以8
  8. 日语二级语法 解惑04 「ように」VS「ために」
  9. 华硕笔记本(i76700hq+nvidia goforce940mx)安装ubuntu18.04
  10. 查询本机ip地址快捷键