首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

有没有C下面的设计模式?该如何解决

2012-02-25 
有没有C下面的设计模式?《设计模式--面向对象的软件复用技术》GoF的书的标题就指明了设计模式是面向对象的。。

有没有C下面的设计模式?
《设计模式--面向对象的软件复用技术》

GoF的书的标题就指明了设计模式是面向对象的。。。

不知道有没有人专门针对面象过程的语言,总结各种模式,然后在纯C中进行应用的???

我在网上搜的时候,发现有人说是将里面的20个模式都用纯C来表达了

不知道哪儿有没有这样的资料?

谢谢!!!

[解决办法]
C本身不支持OO,你在C上面OO地编程,就是一种设计模式;
还有一个常见的设计模式就是“回调模式”。
[解决办法]
c上面通过函数指针来调用一些函数。可以让用户自己写一些函数,注册成回调函数,这也是一种模式。
apache源码中很多这种,因为c没有OO的概念。
[解决办法]
OO的话,有本书就是讲这个的:
http://www.china-pub.com/209254
《UML+OOPC嵌入式C语言开发精讲》
这本书作者就是用ANSI C+宏封装了简单的对象机制,感觉没什么必要 
C就是门简单直接的语言,如果想来面向对象不如用它的表弟C++好
书中的代码类似这样:

C/C++ code
#include <stdio.h>#include <machine.h>int main(void){  float sale_price, height;t_machine *a = machine.new("夏普", "2006", 0.83, 5000.0); /* send messages */sendMsg(a, printName);sale_price = sendMsg(a, computeSalePrice);height = sendMsg(a, inquireHeight);printf("height : %.2f\n", height);printf("sale_price : %.2f\n", sale_price);/* delete object */delete(a);getch();return EXIT_SUCCESS;} 

热点排行