作为上this website描述,将顺序内聚转化为功能内聚?
与(仅)程序凝聚力是一个支撑不同的,可能不相关的活动,其中,控制从一个活动到下一个道次的模块。页 - 琼斯给出了(一个模块的例子,其名称可能是这样的,``准备节日大餐:“”
- 清洁用具从以前的膳食
- 准备土耳其烤
- 制作电话呼叫
- 采取淋浴
- 扒蔬菜
- 将表
现在的问题是,如果每个这些活动,即进行电话呼叫,提取到自己的方法,但它们仍然都被称为在相同的顺序 即
private void PrepareForHolidayMeal()
{
CleanUtensilsfromPreviousMeal();
PrepareTurkeyforRoasting();
...
SetTable();
}
是这种方法仍然是一个例子程序凝聚力?还是它在功能上具有内聚性,因为它支持执行一个问题相关任务的活动,在这种情况下,准备吃饭?
我明白你的意思是关于cleanUtensils和makePhoneCall的有效性。我的问题的重点不在于与方法本身的实际内容有关,而在于主要的prepareHolidayMeal方法的结构。即假设所有的操作都是有效的和必要的,将它们移入他们自己的方法是否会将内聚的类型从程序变为功能? – x1886x
凝聚力意味着“粘在一起” - 如果你解开它们,事情会更好。一旦你再次开始捆绑,你需要小心。您仍然可以创建至少有帮助的新捆绑包。后续问题可能是信息隐藏被破坏了。所以你需要一个很好的平衡。 –