7.泡妞与设计模式(八)模板模式
生活随笔
收集整理的這篇文章主要介紹了
7.泡妞与设计模式(八)模板模式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?TEMPLATE METHOD 模板模式
模板方法模式:模板方法模式準備一個抽象類,將部分邏輯以具體方法以及具體構造子的形式實現,然后聲明一些抽象方法來迫使子類實現剩余的邏輯。不同的子類可以以不同的方式實現這些抽象方法,從而對剩余的邏輯有不同的實現。先制定一個頂級邏輯框架,而將邏輯的細節留給具體的子類去實現。
看過《如何說服女生上床》這部經典文章嗎?女生從認識到上床的不變的步驟分為巧遇、打破僵局、展開追求、接吻、前戲、動手、愛撫、進去八大步驟(Template method),但每個步驟針對不同的情況,都有不一樣的做法,這就要看你隨機應變啦(具體實現)。
?
代碼示例
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <process.h> 4 #include <math.h> 5 #include <Windows.h> 6 7 #define PI 3.14159 8 #define R 300 9 10 //多線程的結構體 11 struct info 12 { 13 char path[1000]; 14 char classname[50]; 15 char text[50]; 16 }; 17 18 //運行模板(畫圖) 19 void run(void *p) 20 { 21 struct info *pinfo = (struct info *)p; 22 ShellExecuteA(NULL, "open", pinfo->path, 0, 0, 1);//異步打開 23 Sleep(2000); 24 25 HWND win = FindWindowA(pinfo->classname, pinfo->text); 26 if (win == NULL) 27 { 28 printf("獲取失敗,%s", pinfo->classname); 29 } 30 else 31 { 32 int x = 0; 33 int y = 0;//坐標 34 int angle = 0;//角度 35 int xpos = 500; 36 int ypos = 500; 37 while (1) 38 { 39 //位置 40 x = xpos + R * cos(PI*angle / 180.0); 41 y = xpos + R * sin(PI*angle / 180.0); 42 //設置位置 43 SetWindowPos(win, NULL, x, y, 300, 500, 0); 44 angle++; 45 if (angle == 360) 46 { 47 angle = 0; 48 } 49 Sleep(10); 50 } 51 } 52 } 53 54 void main() 55 { 56 //創建結構體 57 struct info info1 = { "notepad","Notepad","無標題 - 記事本" }; 58 struct info info2 = { "calc","CalcFrame","計算器" }; 59 //開啟線程 60 _beginthread(run, 0, &info1); 61 Sleep(1000); 62 _beginthread(run, 0, &info2); 63 system("pause"); 64 }?
轉載于:https://www.cnblogs.com/xiaochi/p/8540345.html
總結
以上是生活随笔為你收集整理的7.泡妞与设计模式(八)模板模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 战斗中埋伏的是什么兵?
- 下一篇: mysql建表以及列属性