lemur代码分析之入口设计

本文探讨了 Lemur 的独特设计方式,即通过统一的入口实现多种功能。通过分析其内部结构,揭示了如何利用 vs 依赖关系将不同功能模块化,并保持单一入口不变的巧妙之处。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先Lemur的入口只有一个,但它可以根据不同的配置执行不同的代码,它是怎么组织和设计的呢?

它的组织很有趣:首先从外面来看,整个解决方案生成了好多个可执行的文件。那么深入去看,它们可以以入门所做的操作的相同来分组。
比如建立索引中的几个函数,都要调用分析输入参数GetAppParam();和分析建立索引int AppMain(int argc, char * argv[])。也就它们的入口是一样的,因此lemur利用vs依赖关系这一功能,将同一组的只做了一个入口函数(也就是我们经常提到的main函数)。也就是说lemur中把main函数放到lib(库文件),
然后让其它工程去引用这个库。从而达到同一个入口可以实现不同的功能。平时我们很少见这样用的。平时见的其实是反过来:是将不同功能放到lib,而用一个有main函数的工程去引用。它则正好倒过来用,它的入口是统一的。使开发者不用关心入口怎么去实现。比如建立索引所用的参数文件。  这个是任何一个建立索引都必须的。但是怎么建立索引你可以自己去写。只要把那个入口设为你的依赖项,它就可以帮你调用。感觉应该是这样的,因为调试的时候,它的确是这样调用的。
这种想法的确很高明呀。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值