日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

C语言版:装饰器模式

發(fā)布時間:2025/3/15 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言版:装饰器模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

C語言裝飾器模式實(shí)現(xiàn)


C語言是面向過程的一門語言,更注重過程,是一個一個函數(shù)進(jìn)行一個一個去執(zhí)行 是這么一個過程,那么我們怎樣來實(shí)現(xiàn)用C語言來實(shí)現(xiàn)類似裝飾器模式的效果呢?

每個函數(shù)是一個單獨(dú)的過程,這個函數(shù)編寫之后,我們可以為這個函數(shù)添加新的功能或者邏輯而不改動原函數(shù),這就實(shí)現(xiàn)了類似裝飾器的效果了。C語言中指針很強(qiáng)大,任何定義的函數(shù)都可以用函數(shù)指針指向函數(shù)。所以可用通函數(shù)指針將函數(shù)傳到另一個函數(shù)中。C語言中多態(tài)的形式也是通過函數(shù)指針來類似實(shí)現(xiàn)的


C語言裝飾器模式代碼展示


實(shí)際上就是在通過函數(shù)指針執(zhí)行函數(shù)的前后執(zhí)行執(zhí)行裝飾器的內(nèi)容

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> //2000年寫的函數(shù) int add(int num1,int num2) {int sum = num1 + num2;printf("%d+%d=%d\n", num1, num2, sum);return sum; } //2000年寫的函數(shù) int sub(int num1,int num2) {int sub = num1 - num2;printf("%d-%d=%d\n", num1, num2, sub);return sub; } //可以繼續(xù)拓展其他函數(shù) //2008年寫的函數(shù) int mul(int num1, int num2) {int mul = num1* num2;printf("%d*%d=%d\n", num1, num2, mul);return mul; }/* 使用裝飾器模式 在C語言中可以實(shí)現(xiàn)類似多態(tài)的效果 可以很方便的進(jìn)行拓展 這個函數(shù) 又被稱為架構(gòu)函數(shù) */ void wapper(int(*func)(int,int),int num1,int num2) {printf("進(jìn)入裝飾器\n");//類似回調(diào)函數(shù)嘛,函數(shù)前后 可以進(jìn)行裝飾或者其他邏輯處理func(num1, num2);printf("走出裝飾器\n"); }int main(int argc, char *argv[]) {wapper(add, 20, 30);wapper(sub, 20, 30);wapper(mul, 20, 30);return 0; }


C語言裝飾器模式運(yùn)行結(jié)果





總結(jié)

以上是生活随笔為你收集整理的C语言版:装饰器模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。