C - 单例在模块内部还是外部实例化?

标签 c architecture module

使用 C 模块时会施加哪些限制

  1. 实例化自己的核心struct(作为单例),用户代码使用extern访问它

VS。

  • 让用户代码实例化单例struct
  • 例如,前者的一个限制是用户无法选择分配方法。

    编辑 这个问题的原因是我用方法号碰壁了。 1 过去(C 语言限制)但现在已经忘记它们是什么了!

    最佳答案

    1. 如果您想绝对确保单例“保持单例”,请让模块处理其创建。

    2. 如果单例的实现细节应保持隐藏,您还希望让模块处理它,并且可以选择仅返回一个指向单例的内部 struct 的不透明指针,所以用户除了一个“句柄”之外什么也没有。然而,句柄不是必需的,因为它是单例:-)。

    关于C - 单例在模块内部还是外部实例化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32435379/

    相关文章:

    architecture - DDD/在图数据库中存储领域事件

    typescript 。导入 "module/subdirectory"npm 包时未找到环境声明

    c - 我不明白为什么 for 循环不能编译

    复制具有不同大小的缓冲区的文件以进行读取和写入

    spring-boot - Spring Security with JWT tokens 的主要概念(Spring boot with REST controllers)

    c# - 将审计和存档信息生成到由多个应用程序共享的 sql 数据库中的最简单方法

    c - 为什么它只存储两个字符而不是 4 个?

    char x[2048] 和缓存行问题

    c++ - 如何在 netfilter 中重新计算 IP 校验和?

    javascript - RequireJS:两个模块可以相互依赖吗?