zoukankan      html  css  js  c++  java
  • 关于方法库封装的感悟

    通常我们在使用某个库或者引擎时,习惯针对自己的用法进行更便于自身使用的二次封装。这样不仅简化了对这个库了使用代价,更简化了对新手对该库的认知成本。

    一、简单的封装,我们通常以一个头文件配一个CPP的形式进行简单的封装,使用时直接添加到工程文件夹中,再加入到筛选器中即可。

      这种方法实施最简单,修改库也非常简便,用法也通常没有高级感。缺点是引入库之后,文件通常要与原工程文件杂乱的丢在一个文件夹中,当需要再次使用该库时,需要认真挑选出这些库文件,并在新的工程中添加这些文件。

      如果,将这些文件统一单独用文件夹封起来,则还需要修改添加源文件目录。并且,因为这些文件都不在原始工程目录下,需要修改编译头的路径,如此一来,又需要设置这些源文件不使用预编译头。对这些文件的复用过程可谓十分不便。

    二、另一个常用的方法,通常是作为Lib库提供出来。常常,提供必要的头文件,用来暴露接口,再发布Lib库编译封装的源文件,用户仅需在工程配置中添加附加库目录(链接.lib文件),和包含目录(引入头文件)即可。

      除对某些常用方法进行封装外,此方法也适用于对框架、样例等模块化清晰的部分进行封装。

    三、使用动态库。该方法对于文件体积有要求场合,比静态库更合适。

    以上适用于方法级别的封装,如果需要对一个特定功能进行封装,则使用组件、控件或者服务等方式进行封装。

  • 相关阅读:
    bzoj 1017 魔兽地图DotR
    poj 1322 chocolate
    bzoj 1045 糖果传递
    poj 3067 japan
    timus 1109 Conference(二分图匹配)
    URAL 1205 By the Underground or by Foot?(SPFA)
    URAL 1242 Werewolf(DFS)
    timus 1033 Labyrinth(BFS)
    URAL 1208 Legendary Teams Contest(DFS)
    URAL 1930 Ivan's Car(BFS)
  • 原文地址:https://www.cnblogs.com/ice-arrow/p/12165437.html
Copyright © 2011-2022 走看看