CODEARTS IDE-用委托替换继承:重构后

时间:2024-04-16 15:05:23

重构后

class InheritanceDelegation {

    public static void main(String[] args) {
        InnerClass innerClass = new InnerClass();
        print(innerClass);
    }

    private static void print(InnerClass innerClass) {
        innerClass.print();
    }

    private static class InnerClass {
        private final MyAbstractClass abstractClass = new MyAbstractClass();

        public AbstractClass getAbstractClass() {
            return abstractClass;
        }

        public void print() {
            abstractClass.print();
        }

        public void evaluate() {
            abstractClass.evaluate();
        }

        private class MyAbstractClass extends AbstractClass {
            public void evaluate() {
            }
        }
    }

    private abstract static class AbstractClass {
        public void print() {
            System.out.println("Hello World!");
        }

        public abstract void evaluate();
    }
}
support.huaweicloud.com/usermanual-codeartside/codeartside_01_0148.html