美文网首页
C语言面向对象的编程范式

C语言面向对象的编程范式

作者: qianlihu | 来源:发表于2017-09-22 18:41 被阅读155次

上一篇文章提到的Lua的对象系统,是C语言实现面向对象的一个典范。但对于大部分工程项目来说,没有必要实现的那么复杂。这里介绍我采用的一个方案。

首先,可以设计一个结构体,用于整个模块的管理,结构体可以直接命名为模块名,该结构体最好定义在.c文件中。

一个功能模块内,可能需要有多个类引出,类的定义最好都放在.c文件中,以做到内部逻辑的隐藏。

//管理整个模块
struct  module{
      ....
};

//模块内的类
struct subset{
  ....
};

整个模块需要加载到项目中,所以需要实现一个初始化函数,模块的卸载不是必须的(按经验,应该是没有必要的)。

需要提供各个类的构造、析构,调试接口,以及get,set方法。

需要声明一下需要导出的类,因为只是声明没有定义,外部调用只能持有类的指针,不能访问类的成员,这做到了面向对象的封装性。

struct subset;

int module_init();

//构造
struct subset *subset_create();
//析构
void subset_release(struct subset *);
//调试
void subset_debug(); 
//get set 方法
int subset_get_id(struct subset *);
int subset_set_id(struct subset *,);

一般情况下,模块还有一些逻辑要实现,模块的逻辑实现,我们围绕着模块管理这个结构体来做。

struct moudle{
     list *subset;  //组织模块内需要管理的类
    ...
};

struct module *M = NULL;

//单例实现
int moudle_init(){
  if(M == NULL){
        M = malloc(sizeof(*M));
        .....
  }
}
//模块内逻辑,返回值为错误码,一般0代表成功,-1代表失败
int module_xx_xx(struct subset*,... );//第一个xx是动词,第二个xx是名词

如果模块比较复杂,可以增加一个错误提示单元(往往并不需要)

enum{
  MODULE_OK,
  MODULE_ERROR,
  MODULE_FAIL
};

static const char* ErrorMsg[] = {
  "module_ok",
  "module_error",
  "module_fail",
};

const char *module_error(int errcode){ 
  return ErrMsg(errcode);
}

以上。

相关文章

  • C++11 模板元编程 - 前言

    熟悉C++的程序员都知道,C++是一门多范式编程语言,支持面向过程、面向对象、泛型编程以及函数式编程范式。然而提到...

  • swift注意事项

    一、编程范式 Swift 可以面向协议编程(POP)、函数式编程、面向对象编程。 Object-C 以面向对象编程...

  • GeekBand面向对象高级编程(上)第一周

    C++简介: C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛;C++支持多种编程范式 ...

  • 【IT课程精华】C++远征攻略,打造加薪利器

    C++是在C语言的基础上开发的一种通用编程语言,应用广泛。 C++支持多种编程范式--面向对象编程、泛型编程和过程...

  • Swift和OC的主要区别

    编程范式 Swift 可以面向协议编程、函数式编程、面向对象编程。 Object-C 以面向对象编程为主,当然你可...

  • 【设计模式】面向对象设计思想总结

    1. 什么是面向对象编程和面向对象编程语言 面向对象编程是一种编程范式或编程风格。它以类或对象作为组织代码的基本单...

  • C语言面向对象的编程范式

    上一篇文章提到的Lua的对象系统,是C语言实现面向对象的一个典范。但对于大部分工程项目来说,没有必要实现的那么复杂...

  • 第一章Scala简介

    1.scala介绍 scala是运行在 JVM 上的多范式编程语言,同时支持面向对象和面向函数编程。 多范式:就是...

  • Swift从入门到精通-1

    一、Swift和Objective-C比较 1、编程范式:Swift可以面向协议编程,函数式编程,面向对象编程;O...

  • 从Swift函数式编程到设计模式(二)

    Swift是一门多范式编程语言。除了支持面向对象编程范式之外,还支持函数式编程范式,和泛型编程。这使得Swift可...

网友评论

      本文标题:C语言面向对象的编程范式

      本文链接:https://www.haomeiwen.com/subject/xtifextx.html