接口隔离原则1-传统接口的使用方法-Java设计模式

3 1629

传统接口的演示

package src.Sefrefation;
/* 
    传统的接口的使用方法
    接口
        实现类 A
        实现类 B
    其他类通过接口来使用 A 和 B
    缺点是:A 和 B 必须实现接口的所有方法,即使有些方法是自己用不到的
*/
public class Sefrefation {
    interface Interface1 {
        void operation1();
        void operation2();
        void operation3();
        void operation4();
        void operation5();
        
    }
    
    class D implements Interface1{

        @Override
        public void operation1() {
            // TODO Auto-generated method stub
            throw new UnsupportedOperationException("Unimplemented method 'operation1'");
        }

        @Override
        public void operation2() {
            // TODO Auto-generated method stub
            throw new UnsupportedOperationException("Unimplemented method 'operation2'");
        }

        @Override
        public void operation3() {
            // TODO Auto-generated method stub
            throw new UnsupportedOperationException("Unimplemented method 'operation3'");
        }

        @Override
        public void operation4() {
            // TODO Auto-generated method stub
            throw new UnsupportedOperationException("Unimplemented method 'operation4'");
        }

        @Override
        public void operation5() {
            // TODO Auto-generated method stub
            throw new UnsupportedOperationException("Unimplemented method 'operation5'");
        }
        
    }   
    class B implements Interface1{

        @Override
        public void operation1() {
            // TODO Auto-generated method stub
            throw new UnsupportedOperationException("Unimplemented method 'operation1'");
        }

        @Override
        public void operation2() {
            // TODO Auto-generated method stub
            throw new UnsupportedOperationException("Unimplemented method 'operation2'");
        }

        @Override
        public void operation3() {
            // TODO Auto-generated method stub
            throw new UnsupportedOperationException("Unimplemented method 'operation3'");
        }

        @Override
        public void operation4() {
            // TODO Auto-generated method stub
            throw new UnsupportedOperationException("Unimplemented method 'operation4'");
        }

        @Override
        public void operation5() {
            // TODO Auto-generated method stub
            throw new UnsupportedOperationException("Unimplemented method 'operation5'");
        }
        
    }
    class A{ // A类通过接口Interface1 依赖(使用)B类,但是只会用到1,2,3方法
        public void depend1(Interface1 i) {
            i.operation1();
        }
        public void depend2(Interface1 i) {
            i.operation2();
        }
        public void depend3(Interface1 i) {
            i.operation3();
        }

        
        
    }
    class C{// C类通过接口Interface1 依赖(使用)D类,但是只会用到1,4,5方法
        public void depend1(Interface1 i) {
            i.operation1();
        }
        public void depend4(Interface1 i) {
            i.operation4();
        }
        public void depend5(Interface1 i) {
            i.operation5();
        }
    }

}


Prev Post 单一职责原则-Java设计模式
Next Post 接口隔离原则2-Java设计模式