package jdepend.knowledge.pattern.impl2.feature; import jdepend.knowledge.pattern.impl2.AbstractFeature; import jdepend.knowledge.pattern.impl2.FeatureCheckContext; import jdepend.metadata.JavaClass; import jdepend.metadata.Method; public class StrategyFeature extends AbstractFeature { @Override protected boolean have(FeatureCheckContext context) { if (context.getAbstractMethods() != null && context.getSubClasses() != null) { for (JavaClass subClass : context.getSubClasses()) { for (Method method : subClass.getSelfMethods()) { if (!method.isConstruction() && method.getSelfLineCount() >= 5) { for (Method superMethod : context.getAbstractMethods()) { if (method.isOverride(superMethod)) { this.setPatternInfo(method.getName()); return true; } } } } } } return false; } @Override public String getName() { return "覆盖了父类抽象方法的子类方法大于等于5行"; } }