c語言的實現和使用

Prot otype 模式主要解決淺層拷貝和深層拷貝的問題,可是通常不是太差的程序員通常均可以免這種錯誤。 我的認爲它蘊含着一輩子二, 二生四的太極思想,程序員

可是在c語言中怎麼實現,有什麼應用場景呢?prototype


先給上代碼程序


typedef char data_type;並行


typedef struct prototypecall

{數據

    data_type *data;語言

    int data_len;錯誤

    void        (*func)(void * data);上傳

} prototype_t;data



prototype_t * clone(prototype_t *proto_type)

{

    prototype_t *new_type = NULL;

    if (NULL == proto_type)

    {

        return NULL;

    }


    new_type = (prototype_t *)calloc(1, sizeof(prototype_t));

    if (NULL == new_type)

    {

        return NULL;

    }


    new_type->data = calloc(proto_type->data_len, sizeof(data_type));

    if (NULL == new_type->buffer)

    {

        free(new_type);

        new_type = NULL;

        return;

    }


    memcpy(new_type->data, proto_type->data, proto_type->data_len);

    new_type->func = proto_type->func;


    return new_type;

}


應用場景:

舉個實際應用的例子,咱們要把數據進行網上傳輸,要求以下

一、儘可能少傳輸數據

二、認爲TCP CRC 校驗不可靠。

咱們須要作以下操做

一、給數據壓縮

二、給數從新算校驗值

通常實現方式能夠,先壓縮再算校驗值或者先算校驗再壓縮。可是若是須要儘量加快速度完成壓縮和校驗的計算,那麼咱們能夠將壓縮和校驗進行並行完成,這個時候prototype起做用了。 原始數據作壓縮,clone數據作校驗。 Prototype就起做用了


Prototype 模式:須要本尊和分身作不一樣的事情時,這個頗有用

相關文章
相關標籤/搜索