第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

多少個(gè)參數(shù)太多?

多少個(gè)參數(shù)太多?

例程可以有參數(shù),這不是新聞。您可以根據(jù)需要定義任意數(shù)量的參數(shù),但是參數(shù)太多會(huì)使您的例程難以理解和維護(hù)。當(dāng)然,您可以使用結(jié)構(gòu)化變量作為解決方法:將所有這些變量放在單個(gè)結(jié)構(gòu)中,然后將其傳遞給例程。實(shí)際上,使用結(jié)構(gòu)簡(jiǎn)化參數(shù)列表是Steve McConnell在Code Complete中描述的技術(shù)之一。但正如他所說:謹(jǐn)慎的程序員避免捆綁數(shù)據(jù)超出邏輯上的必要性。因此,如果您的例程中有太多參數(shù),或者您使用結(jié)構(gòu)來掩蓋大參數(shù)列表,則可能是您做錯(cuò)了什么。也就是說,您不會(huì)使耦合松動(dòng)。我的問題是,何時(shí)可以考慮參數(shù)列表太大?我認(rèn)為超過5個(gè)參數(shù)太多了。你怎么看?
查看完整描述

3 回答

?
叮當(dāng)貓咪

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊

如果某些參數(shù)是冗余的,則函數(shù)只能具有太多參數(shù)。如果使用了所有參數(shù),則該函數(shù)必須具有正確數(shù)量的參數(shù)。采取以下常用功能:


HWND CreateWindowEx

(

  DWORD dwExStyle,

  LPCTSTR lpClassName,

  LPCTSTR lpWindowName,

  DWORD dwStyle,

  int x,

  int y,

  int nWidth,

  int nHeight,

  HWND hWndParent,

  HMENU hMenu,

  HINSTANCE hInstance,

  LPVOID lpParam

);

這是12個(gè)參數(shù)(如果將x,y,w和h捆綁為矩形,則為9),并且還有從類名派生的參數(shù)。您將如何減少呢?您是否想進(jìn)一步減少數(shù)量?


不要讓參數(shù)的數(shù)量困擾您,只需確保它是合乎邏輯的并有據(jù)可查,并讓intellisense *可以為您提供幫助。


查看完整回答
反對(duì) 回復(fù) 2019-10-05
?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊

非常感謝您的所有回答:


令人驚訝的是,找到像我一樣也認(rèn)為5個(gè)參數(shù)是代碼健全性的一個(gè)很好的限制的人。


通常,人們傾向于認(rèn)為3到4之間的限制是很好的經(jīng)驗(yàn)法則。這是合理的,因?yàn)槿藗兺ǔ:茈y計(jì)算4件以上的事情。


正如米蘭所指出的,平均每個(gè)人一次最多可以保留7件事。但是我認(rèn)為您不能忘記,在設(shè)計(jì)/維護(hù)/研究例程時(shí),您不僅要記住參數(shù),還必須記住更多的事情。


有人認(rèn)為例程應(yīng)包含所需的盡可能多的參數(shù)。我同意,但僅適用于一些特定情況(對(duì)OS API的調(diào)用,對(duì)優(yōu)化很重要的例程等)。我建議通過在可能的時(shí)候在這些調(diào)用之上添加一個(gè)抽象層來隱藏這些例程的復(fù)雜性。


尼克對(duì)此有一些有趣的想法。如果您不想閱讀他的評(píng)論,那么我為您總結(jié):簡(jiǎn)而言之,這取決于:


我討厭制定如此嚴(yán)格的規(guī)則,因?yàn)榇鸢覆粌H會(huì)根據(jù)項(xiàng)目的大小和范圍而變化,而且我認(rèn)為它甚至?xí)谀K級(jí)別變化。根據(jù)您的方法正在執(zhí)行的操作或類應(yīng)表示的內(nèi)容,兩個(gè)參數(shù)很可能太多,并且是過多耦合的征兆。


這里的道義是不要害怕向同行展示您的代碼,與他們討論并嘗試“識(shí)別出內(nèi)聚力低和耦合緊密的區(qū)域”。


最后,我認(rèn)為無奈與尼克非常吻合,并以這種對(duì)編程藝術(shù)的詩意見解(見下面的評(píng)論)總結(jié)了他的諷刺貢獻(xiàn):


編程不是工程。代碼的組織是一門藝術(shù),因?yàn)樗Q于人為因素,對(duì)于任何硬性規(guī)則,人為因素都過于依賴于上下文。


查看完整回答
反對(duì) 回復(fù) 2019-10-05
  • 3 回答
  • 0 關(guān)注
  • 1618 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)