【问题标题】:Interface / Logic design technique in cc语言中的接口/逻辑设计技术
【发布时间】:2011-04-06 09:24:05
【问题描述】:

我有一个允许外部子系统使用我的系统的接口。

C 程序通常使用接口吗?

我有一个核心逻辑模块,我想用它来处理系统的核心,这意味着接口会将数据发送到核心,核心也会将数据传递给可能返回的数据。

这是一种很好的做事方式吗?感觉好像有一个额外的数据传递层,这可能是不需要的。另一方面,我不希望接口直接连接到较低的系统。

这种额外的数据处理层是好事还是多余的?

【问题讨论】:

    标签: c interface logic


    【解决方案1】:

    C 程序通常使用接口吗?

    • 头文件代表一个接口

    这是一种很好的做事方式吗?

    • 恕我直言,是的。在面向对象中,它被称为Facade Pattern,并隐藏了底层组件的复杂性。并为客户端提供更简单的 API。

    这个额外的数据处理层是好事还是多余的?

    • 如果事情不是微不足道的,那么值得努力实现额外的层。

    【讨论】:

    • 嗯,感觉是多余的,因为会用到相同的功能,但是,我不想在接口文件中有一堆代码。例如一些逻辑代码等
    • @Helium3 - 通常,您应该在.h-文件中有定义,而不是逻辑。
    • @gnud:我认为我的工作很混乱。接口文件含义例如interface.c 不是 logic.h。但是我认为在考虑 interface.c 时我正在编写不需要的代码。 logic.h 也可以是从外部子系统到内部系统的接口?
    • mystash.h 文件中声明你的函数。在mystash.c 文件中实现它们。在使用函数的任何地方都包含mystash.h 文件,并链接到mystash.o 对象。没有冗余。
    【解决方案2】:

    将数据从外部子系统复制到您的系统可能是有意义的。我能想到的一种情况是数据是瞬态的,因此必须在它仍然可用时复制。这实际上取决于您的模块将如何使用。

    不过,一旦数据在您的系统中,进一步复制它是没有意义的。例如,我不会将它从您的“接口模块”复制到您的“核心逻辑模块”。复制数据只会减慢程序的速度,没有任何好处。

    【讨论】:

    • 我的意思不是复制。我更多地考虑在接口中具有与核心逻辑中的功能几乎相同的功能,只是为了有一个额外的抽象层。但实际数据不会被传递,我会传递指针。甚至需要这个接口,还是逻辑会成为接口?
    猜你喜欢
    • 2011-02-01
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多