如题,请给位大哥大姐用代码说明,不要用文绉绉的语句,太抽象

解决方案 »

  1.   

    1.class A {
        public int ma;    // ....
    }class B {
        private A a = new A();    public void methodA() {
            a.ma += 1; // 这里
        }
    }// 改正:class A {
        private int ma; // public --> private    // ....    //加 getter/setter
        public int getMa(){
            return this.ma;
        }
        public void set(int ma) {
            this.ma = ma;
        }
    }class B {
        private A a = new A();    public void methodA() {
            this.a.setMa(this.a.getMa() + 1);
        }
    }
    2.class A {
        private int ma;    // ....    public int getMa(){
            return this.ma;
        }
        public void set(int ma) {
            this.ma = ma;
        }
    }class B {
        private A a = new A(); // 这里,依赖    public void methodA() {
            this.a.setMa(this.a.getMa() + 1);
        }
    }// 改正:--------------------------------
    interface _IA {
        // ....    int getMa();
        void set(int ma);
    }class A implements _IA{
        private int ma;    // ....    public int getMa(){
            return this.ma;
        }
        public void set(int ma) {
            this.ma = ma;
        }
    }
    class B {
        private _IA a = new A(); // A 改为 _IA    public void methodA() {
            this.a.setMa(this.a.getMa() + 1);
        }
    }再进一步:
    class B {
        private _IA a; // 这里在B中不创建一个_IA的对象,而使用DI,依赖注入    public void methodA() {
            this.a.setMa(this.a.getMa() + 1);
        }
    }
      

  2.   

    嗯,当然使用 interface + implement class 是有需求才会这么设计,不能一上来什么都是一个接口加一个实现类。这样超前设计是没必要的,而且是过度的设计,弊大于利。