calculate
方法用于计算组件的内聚性指数(Cohesion Index)。
cohesionBehavior.calculate(components)
components
:Array,组件对象数组。返回组件的内聚性指数。
const cohesionBehavior = new CohesionBehavior();
const components = [
{name: 'Header', methods: ['render', 'update'], variables: ['title']},
{name: 'Footer', methods: ['render'], variables: ['copyright']},
{name: 'Button', methods: ['render', 'click'], variables: ['label']}
];
const cohesionIndex = cohesionBehavior.calculate(components);
console.log(cohesionIndex); // 0.25
内聚性指数是一种用于判断组件内部结构是否合理的衡量指标。在 Yuka 框架中,我们将组件的内聚性指数量化,并通过该方法对其进行计算。
计算内聚性指数的过程分为两个步骤:
将组件中所有的方法和变量名称(不包含参数)提取出来,构成一个字符串数组。
计算组件中方法和变量名称相同的次数,再除以该组件总的方法数量和变量数量之和。
将所有组件的内聚性指数累加,再除以组件数量,即为最终的内聚性指数。
该方法不会改变传入的组件数组。传入的对象必须具有 name
、methods
和 variables
属性。方法和变量名称中不包含参数。
内聚性指数 = (所有组件的相似数量总和)/ (所有组件方法数量和变量数量之和总和 * 组件数量)