编码、模块化、接口

     本文主要写自己在功能模块设计及编码时一些习惯。

     在面向对象的编程时我一般喜欢在一个文件中实现一个类,除非这个类的代码量非常的小而且简单,暂且把这个类也就叫着一个模块,毕竟模块可大可小,一个具备一定功能的类完全可以称为一个模块。既然他是模块就会设计到和其他模块的互相调用关系,我一直认为模块功能要清晰化,属于此模块的功能如果要提供给其他模块使用一定要公布API,而不能将数据直接暴露。如果出现了本模块需要调用的功能而又无法确定实现方式的,一般可以定义函数原型(暂且叫接口)然后公布这个原型,应用者只要将实现函数指针注册进来,然后本模块即可调用(系统的callback function也是这个意思)。

     在一个系统中会存在很多的功能模块,他们需要配合完成一些系统功能。结构上模块应该形成树状,就像一个父类可以派生多个子类,子类又可派生子类。应避免上下层模块互相调用,上层包含模块可以通过下层模块的接口调用下层模块,下层模块应该通过回调的方式调用上层模块的功能(这样避免下层再包含上层模块),或者这个实现可能是同层的其他模块,都可以通过上层模块牵线搭桥达到效果。这样形成的结构总是上次对下层的包含,模块层次上结构清晰,利于代码的阅读和维护。

转载于:https://www.cnblogs.com/NewJourney/archive/2012/03/06/2382786.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值