亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 4585 | 回復(fù): 14
打印 上一主題 下一主題

如何根據(jù)ID,調(diào)用合適的函數(shù),高手進來! [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-01-15 01:47 |只看該作者 |倒序瀏覽
大家好,我現(xiàn)在有一個類對象A, 它有三個成員函數(shù)
1. void  populate();
2. void  process();
3. void  validate();

我現(xiàn)在要根據(jù)不同的ID,調(diào)用不同的函數(shù),我能想到的就是用下面這種方法了:
switch(ID)
{
   case 0: A->populate(); break;
   case 1: A->process(); break;
   case 2: A->validate(); break;
   default: break;
}

但是這種代碼很不靈活,如果要增加函數(shù),則要進行代碼改動。。。。各位大俠能不能提供一個好方法?


祈求好的解決辦法,小弟拜謝了。!

論壇徽章:
0
2 [報告]
發(fā)表于 2011-01-15 10:02 |只看該作者
要增加函數(shù) 肯定是要改代碼的 除非你增加的函數(shù)是現(xiàn)有的函數(shù)...

如果不希望增加一個現(xiàn)有的函數(shù)也需要改switch 的話 可以采用配置文件的形式
把各個函數(shù)的函數(shù)名(函數(shù)指針)和ID建立對應(yīng)關(guān)系 然后主函數(shù)加載配置文件后保存成二維字符串數(shù)組 調(diào)用函數(shù)時通過函數(shù)指針形式調(diào)用
PS:使用這種方法有個前提條件 你得設(shè)計你所要添加的函數(shù) 保持函數(shù)無參數(shù) 或者參數(shù)統(tǒng)一

論壇徽章:
0
3 [報告]
發(fā)表于 2011-01-15 11:00 |只看該作者
回調(diào)函數(shù)數(shù)組

論壇徽章:
0
4 [報告]
發(fā)表于 2011-01-15 12:33 |只看該作者
方法很多啊 if else是一種

加上工廠換成map實現(xiàn)也是一種

換成類似觀察者模式那樣,通過注冊的也是一種

也可以利用共享庫實現(xiàn)

論壇徽章:
0
5 [報告]
發(fā)表于 2011-01-15 12:41 |只看該作者
寫個接口用于注冊函數(shù) ID+&func

論壇徽章:
0
6 [報告]
發(fā)表于 2011-01-15 13:13 |只看該作者
要增加函數(shù) 肯定是要改代碼的 除非你增加的函數(shù)是現(xiàn)有的函數(shù)...

如果不希望增加一個現(xiàn)有的函數(shù)也需要改s ...
wb112200 發(fā)表于 2011-01-15 10:02



    這種方法 也需要接口吧

論壇徽章:
0
7 [報告]
發(fā)表于 2011-01-15 13:51 |只看該作者
不知道函數(shù)指針是否可以解決這個問題?

論壇徽章:
0
8 [報告]
發(fā)表于 2011-01-15 14:45 |只看該作者
條件判斷,函數(shù)指針
還是高級語言方便

論壇徽章:
0
9 [報告]
發(fā)表于 2011-01-17 20:38 |只看該作者
設(shè)計模式?

論壇徽章:
1
射手座
日期:2013-08-21 13:11:46
10 [報告]
發(fā)表于 2011-01-17 23:40 |只看該作者
1. 用成員函數(shù)指針數(shù)組
2. 用虛函數(shù),因為我看到你函數(shù)名字不一樣,但是午餐無返回值的.看看能不能抽象一下,用虛函數(shù).
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP