1、開閉原則, 對擴充套件是開放的,對修改是關閉的。
2、復用,模組復用和系統復用,其中模組部分復用或將整個專案程式設計可復用的。
3、**內部模組化時,**之中有不同的邏輯。
將**分為業務邏輯層和資料儲存層,將**模組化成兩個層級。
像 對選單的處理,選單功能實現為業務邏輯
像 選單資料儲存用鍊錶,也可以以後改為雜湊表,為資料儲存層
**如下:
/** revision log:
** created by mengning,2014/08/31**/
#include
#include
#include
int help();
#define cmd_max_len 128
#define desc_len 1024
#define cmd_num 10
/*data struct and its operations*/
typedef struct datanode
tdatanode;
tdatanode * findcmd(tdatanode * head,char *cmd)
tdatanode *p=head;
while(p!=null)
p=p->next;
}return null;
}int showallcmd(tdatanode * head)
return 0;
}/*menu program*/
static tdatanode head=,};
int main()
printf("%s-%s",p->cmd,p->desc);
if(p->handler!=null)
}return 0;
}int help()
第九節除錯
除錯 第一種方法簡單直接粗暴有效,就是用print 把可能有問題的變數列印出來看看 斷言凡是用print 來輔助檢視的地方,都可以用斷言 assert 來替代 assert的意思是,表示式n 0應該是true,否則,根據程式執行的邏輯,後面的 肯定會出錯。如果斷言失敗,assert語句本身就會丟擲a...
java筆記第九節
第九節 一 設計模式 相當於戰術 入格 看 可用性,美觀性 的由23種。二 架構模式 相當於戰略 目前只有兩種 1.b s 瀏覽器 伺服器,邏輯 堆放到伺服器上 方便公升級,修改,伺服器任務重 b s網頁上的內容是臨時從伺服器上下下來的 2.c s 客戶 伺服器,邏輯 堆放到客戶端上 不適合管理軟體...
第九節 陣列
陣列是為了放多個資料的資料型別,陣列是引用資料型別,除了八種基本資料型別外其他資料都是引用資料型別。語法 有兩種方式 方式一 資料型別 變數名 推薦 例如 int array 方式二 資料型別 變數名 例如 int array 語法 有兩種方式 方式一 變數名 new 資料型別 陣列大小 方式二 變...