理解面向接口编程

最近在学Spring boot,以前没有用过Spring和Spring MVC,直接上手写Spring boot,写了一个小项目的增删改查和逻辑判断之类的后,大概知道了怎么样个写法,但是不知道为啥要这么做,什么注解啊,注入啊只是知道这个词。所以想慢慢的开始学一下理论,一点一点的打怪升级。于是就先看看Spring的核心,控制反转,咦,这是个啥子东西,于是打开浏览器,你们懂得,查了一大半个晚上,还是不太懂,隐隐约约的看到要先了解面向接口编程这个东西,那就了解吧,于是打开浏览器,什么是面向接口编程,如何理解面向接口编程,好像搜索的都一样,还是不太理解。在写项目的数据库的时候用到了这个面向接口的做法,就大概把自己的理解总结一下。 我也不知道这样理解对不对,先记录下来!!!
 
参考网上的文章和实例,我想到了这样一个例子:
 
不用接口时场景:
       某公司老总有一个特殊的爱好,就是爱约美女一起骑马,每次想骑马的时候就拿出手机摇一摇,摇到了三个会骑马的姑娘。如图,然后老板觉得谁更合适就叫出来,用程序实现如下
 
 
 
 
 
 一共需要五个类,各美女一个类,老板一个类,一个测试类
 
 
 
美女A:小优 类里,用一个方法实现其骑马操作
package com.lee.test;

public class A {
    public void horse() {
        System.out.println("我是A:小优,会骑马");
    }
}
 
 
美女B:小仓 
package com.lee.test;

public class B {
    public void horse() {
        System.out.println("我是B:小仓,会骑马");
    }
}
 
美女C:小麻 
package com.lee.test;

public class C {
   public void horse() {
       System.out.println("我是C:小麻,会骑马");
   }
}
Boss类: 老板觉得A:小优更好,于是就new一个A对象,然后调用她的骑马方法
package com.lee.test;

public class Boss {
    public void togetherHorse() {
        A a = new A();
        a.horse();
    }    
}
测试类:在main方法里实现老板和美女一起骑马
package com.lee.test;

public class Test {
    public static void main(String[] args) {
        Boss b = new Boss();
        b.togetherHorse();
    }
}
 
 
使用接口实现场景:
        老板最近赚大钱了,还请了一个男秘书,于是不再每次自己摇一摇找会骑马的美女,而是交给男秘来安排;男秘想了一个办法,我要让美女主动找上来,会骑马的姑娘请按照我给的表格里详细的介绍自己。老板要去骑马的时候,男秘给安排
 
表格(接口定的方法)
详细的介绍自己(美女拿到表格后各自去实现这个方法)
 
                  
 
男秘给的表格(接口)
package com.lee.interTest;

public interface HorseService {
    void horse();
}
 
美女A:小优拿到表格后介绍自己(继承接口,并实现其方法)
package com.lee.interTest;

public class A implements HorseService{
    public void horse() {
        System.out.println("我是A:小优,身高170,在草原长大,骑马技术很6");
    }    
}
美女B:小仓 拿到表格后介绍自己(继承接口,并实现其方法)
package com.lee.interTest;

public class B implements HorseService{
      public void horse() {
            System.out.println("我是B:小仓,幽默,美丽,大方");
        }
}
美女C:小麻 拿到表格后介绍自己(继承接口,并实现其方法)
package com.lee.interTest;

public class C implements HorseService{
    public void horse() {
           System.out.println("我是C:小麻,汉子就是我,我就是汉子,萌萌哒");
       }
}
Boss:老板通过接口的方式与美女建立某种联系
package com.lee.interTest;

public class Boss {
    public void togetherHorse(HorseService horseService) {
        horseService.horse();
    }    
}
Test:(老板要去骑马了,秘书安排最合适的A给老板)
package com.lee.interTest;

public class Test {

    public static void main(String[] args) {
        Boss boss = new Boss();
        A a = new A();
        boss.togetherHorse(a);    
    }
}

上面用到的代码下载地址:https://gitee.com/lemon_le/interface_test

猜你喜欢

转载自www.cnblogs.com/lemon-le/p/9297206.html
今日推荐