C语言版:装饰器模式
生活随笔
收集整理的這篇文章主要介紹了
C语言版:装饰器模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C語言裝飾器模式實現
C語言是面向過程的一門語言,更注重過程,是一個一個函數進行一個一個去執行 是這么一個過程,那么我們怎樣來實現用C語言來實現類似裝飾器模式的效果呢?
每個函數是一個單獨的過程,這個函數編寫之后,我們可以為這個函數添加新的功能或者邏輯而不改動原函數,這就實現了類似裝飾器的效果了。C語言中指針很強大,任何定義的函數都可以用函數指針指向函數。所以可用通函數指針將函數傳到另一個函數中。C語言中多態的形式也是通過函數指針來類似實現的。
C語言裝飾器模式代碼展示
實際上就是在通過函數指針執行函數的前后執行執行裝飾器的內容
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> //2000年寫的函數 int add(int num1,int num2) {int sum = num1 + num2;printf("%d+%d=%d\n", num1, num2, sum);return sum; } //2000年寫的函數 int sub(int num1,int num2) {int sub = num1 - num2;printf("%d-%d=%d\n", num1, num2, sub);return sub; } //可以繼續拓展其他函數 //2008年寫的函數 int mul(int num1, int num2) {int mul = num1* num2;printf("%d*%d=%d\n", num1, num2, mul);return mul; }/* 使用裝飾器模式 在C語言中可以實現類似多態的效果 可以很方便的進行拓展 這個函數 又被稱為架構函數 */ void wapper(int(*func)(int,int),int num1,int num2) {printf("進入裝飾器\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語言裝飾器模式運行結果
總結
以上是生活随笔為你收集整理的C语言版:装饰器模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言:汇编程序的hello worl
- 下一篇: IDEA 启动时,报“淇℃伅”的字符