中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

給學校做網站合肥百度競價推廣代理公司

給學校做網站,合肥百度競價推廣代理公司,wordpress 仿微信主題,查詢網站怎么做文章目錄 狀態(tài)模式代碼實現(xiàn)代碼解釋小結 狀態(tài)模式 狀態(tài)模式(State Pattern)是一種行為設計模式,它允許對象在內部狀態(tài)改變時改變它的行為。在嵌入式系統(tǒng)中,狀態(tài)模式尤其適用于那些根據外部事件或內部條件頻繁改變狀態(tài)并且每種狀態(tài)…

文章目錄

    • 狀態(tài)模式
    • 代碼實現(xiàn)
    • 代碼解釋
    • 小結

狀態(tài)模式

狀態(tài)模式(State Pattern)是一種行為設計模式,它允許對象在內部狀態(tài)改變時改變它的行為。在嵌入式系統(tǒng)中,狀態(tài)模式尤其適用于那些根據外部事件或內部條件頻繁改變狀態(tài)并且每種狀態(tài)下行為不同的場景,例如設備的不同工作模式切換、任務調度、傳感器狀態(tài)管理、通信協(xié)議狀態(tài)機等。

代碼實現(xiàn)

#include <stdio.h>// 定義ACTION_PREPARE, ACTION_RUN, ACTION_END為合適的宏或整數(shù)值
#define ACTION_PREPARE 1
#define ACTION_RUN     2
#define ACTION_END     3// 首先聲明 WashingMachine 結構體
typedef struct WashingMachineTag WashingMachine;// 定義狀態(tài)枚舉
typedef enum {STATE_STANDBY,STATE_PREPARING,STATE_RUNNING,STATE_FINISHED
} WashingMachineState;// 定義指向處理函數(shù)的指針類型
typedef void (*StateMachineAction)(WashingMachine *);// 洗衣機結構體
struct WashingMachineTag  {WashingMachineState state;StateMachineAction on_prepare;StateMachineAction on_run;StateMachineAction on_end;
} ;// 待機狀態(tài)下準備
static void standby_prepare(WashingMachine *machine) {printf("Machine is preparing for washing.\n");machine->state = STATE_PREPARING;
}// 準備狀態(tài)下運行
static void preparing_run(WashingMachine *machine) {printf("Machine has started running.\n");machine->state = STATE_RUNNING;
}// 運行狀態(tài)下結束
static void running_end(WashingMachine *machine) {printf("Washing cycle completed.\n");machine->state = STATE_FINISHED;
}// 初始化洗衣機狀態(tài)及其對應的處理函數(shù)
void init_washing_machine(WashingMachine *machine) {machine->state = STATE_STANDBY;machine->on_prepare = standby_prepare;machine->on_run = preparing_run;machine->on_end = running_end;
}// 根據當前狀態(tài)執(zhí)行相應操作
void operate_washing_machine(WashingMachine *machine, int action) {switch (machine->state) {case STATE_STANDBY:if (action == ACTION_PREPARE) {machine->on_prepare(machine);} else {printf("Invalid action in STANDBY state.\n");}break;case STATE_PREPARING:if (action == ACTION_RUN) {machine->on_run(machine);} else {printf("Invalid action in PREPARING state.\n");}break;case STATE_RUNNING:if (action == ACTION_END) {machine->on_end(machine);} else {printf("Invalid action in RUNNING state.\n");}break;case STATE_FINISHED:printf("Machine is already in FINISHED state.\n");break;default:printf("Unknown machine state.\n");break;}
}int main() {WashingMachine machine;init_washing_machine(&machine);// 根據實際需求調用操作函數(shù)operate_washing_machine(&machine, ACTION_PREPARE);operate_washing_machine(&machine, ACTION_RUN);operate_washing_machine(&machine, ACTION_END);return 0;
}

代碼解釋

代碼示例展示了如何使用狀態(tài)模式來模擬一個具有待機、準備、運行和結束四種狀態(tài)的洗衣機設備。總結要點如下:

定義了WashingMachineState枚舉類型,用于表示洗衣機的不同狀態(tài)(待機、準備、運行和結束)。

定義了一個指向函數(shù)的指針類型StateMachineAction,該類型表示在不同狀態(tài)下執(zhí)行動作的函數(shù)指針。

創(chuàng)建了WashingMachine結構體,其中包含當前狀態(tài)字段和三個函數(shù)指針成員,分別對應在不同狀態(tài)下需要執(zhí)行的動作。

定義了三個靜態(tài)函數(shù),分別是standby_prepare、preparing_run和running_end,這三個函數(shù)分別對應洗衣機從待機到準備、從準備到運行、從運行到結束狀態(tài)的轉換。

init_washing_machine函數(shù)用于初始化洗衣機對象,設置初始狀態(tài)和對應狀態(tài)下的動作函數(shù)。

operate_washing_machine函數(shù)根據當前洗衣機的狀態(tài)執(zhí)行相應的動作。在本示例中,動作的選擇依賴于傳入的action參數(shù),但是實際上可能根據狀態(tài)機的規(guī)則自行定義。

定義了宏ACTION_PREPARE、ACTION_RUN和ACTION_END,雖然在給出的代碼片段中并未具體使用,但在實際應用中,這些宏或類似的常量可用于指示要執(zhí)行的具體動作。

小結

本文通過狀態(tài)模式分離了洗衣機狀態(tài)的改變和對應狀態(tài)下的行為,使得狀態(tài)之間的轉換變得清晰且易于維護。當狀態(tài)變化時,只需調用相應狀態(tài)下的動作函數(shù)即可完成狀態(tài)的遷移和對應行為的執(zhí)行。

http://www.risenshineclean.com/news/45164.html

相關文章:

  • 廈門百度網站建設優(yōu)化大師下載安裝app
  • wordpress實現(xiàn)pdf瀏覽seo網絡推廣機構
  • 寶安中心做網站網站公司網站建設
  • 《原始傳奇》官方網站seo推廣工具
  • 鐵嶺做網站信息網店推廣的渠道有哪些
  • 長治市人民政府門戶網站簡單的網站制作
  • 網站源碼推薦谷歌sem
  • 汽車網站更新怎么做口碑營銷的例子
  • 鄭州展廳設計制作公司seo綜合查詢什么意思
  • 旅游類網站如何做推廣百度推廣后臺
  • 目錄網站模板php搭建一個簡單的網站
  • iis7建立網站可以看封禁網站的瀏覽器
  • 做網站公司排名電話國際新聞快報
  • 外貿網站建設模板百度云客服人工電話
  • 企業(yè)網站注冊官網百度搜索結果優(yōu)化
  • 網站如何做微信支付寶支付寶支付社交網絡的推廣方法
  • 深圳云網站建站公司搜索引擎的設計與實現(xiàn)
  • 搜狐一開始把網站當做什么來做站長之家官網
  • 校園網站建設招標公告企業(yè)網站推廣方案
  • 網站建設實訓過程報告有什么好的推廣平臺
  • 合肥高端網站開發(fā)做一個企業(yè)網站大概需要多少錢
  • thinkphp 網站根目錄地址免費網絡推廣網站
  • o2o網站建設流程理發(fā)培訓專業(yè)學校
  • 網站建設價值長沙seo優(yōu)化推廣
  • 沒有備案的網站 推廣牛排seo
  • 什么網站可以免費做視頻的軟件有哪些免費學生網頁制作成品代碼
  • 網站建設的目的分析國內新聞最新消息今天簡短
  • 自己做網站賣閥門網絡營銷方案的制定
  • 找人建個網站多少錢semantic ui
  • 如何減少網站建設中的錯誤廣東東莞疫情最新情況