Lack of Cohesion of Methods (LCOM) is a measure of cohesiveness of a class. The low LCOM value means the methods in a class is authored to achieve a common goal. Thus, a low LCOM value is desirable as it indicates good encapsulation. LCOM is measured in percent (%).
Default Threshold77%
Example:
LCOM for class ‘ClusterInformation’ in below code is 50 which is within the default threshold.
package org.apache.flink.runtime.entrypoint; import org.apache.flink.util.Preconditions; import java.io.Serializable; /** * Information about the cluster which is shared with the cluster components. */ public class ClusterInformation implements Serializable { private static final long serialVersionUID = 316958921518479205L; private final String blobServerHostname; private final int blobServerPort; public ClusterInformation(String blobServerHostname, int blobServerPort) { this.blobServerHostname = Preconditions.checkNotNull(blobServerHostname); Preconditions.checkArgument( 0 < blobServerPort && blobServerPort < 65_536, "The blob port must between 0 and 65_536. However, it was " + blobServerPort + '.'); this.blobServerPort = blobServerPort; } public String getBlobServerHostname() { return blobServerHostname; } public int getBlobServerPort() { return blobServerPort; } @Override public String toString() { return "ClusterInformation{" + "blobServerHostname='" + blobServerHostname + ''' + ", blobServerPort=" + blobServerPort + '}'; } }