作爲上this website描述,將順序內聚轉化爲功能內聚?
與(僅)程序凝聚力是一個支撐不同的,可能不相關的活動,其中,控制從一個活動到下一個道次的模塊。頁 - 瓊斯給出了(一個模塊的例子,其名稱可能是這樣的,``準備節日大餐:「」
- 清潔用具從以前的膳食
- 準備土耳其烤
- 製作電話呼叫
- 採取淋浴
- 扒蔬菜
- 將表
現在的問題是,如果每個這些活動,即進行電話呼叫,提取到自己的方法,但它們仍然都被稱爲在相同的順序 即
private void PrepareForHolidayMeal()
{
CleanUtensilsfromPreviousMeal();
PrepareTurkeyforRoasting();
...
SetTable();
}
是這種方法仍然是一個例子程序凝聚力?還是它在功能上具有內聚性,因爲它支持執行一個問題相關任務的活動,在這種情況下,準備吃飯?
我明白你的意思是關於cleanUtensils和makePhoneCall的有效性。我的問題的重點不在於與方法本身的實際內容有關,而在於主要的prepareHolidayMeal方法的結構。即假設所有的操作都是有效的和必要的,將它們移入他們自己的方法是否會將內聚的類型從程序變爲功能? – x1886x
凝聚力意味着「粘在一起」 - 如果你解開它們,事情會更好。一旦你再次開始捆綁,你需要小心。您仍然可以創建至少有幫助的新捆綁包。後續問題可能是信息隱藏被破壞了。所以你需要一個很好的平衡。 –