原創博客,轉載請註明出處。
java
相信小夥伴們都知道面向接口編程的好處,這裏我再也不敘述。重點是怎麼理解這種困擾新手的方式。編程嘛,確定是爲了解決實際問題,若是不能很好的和生活中的事例相結合,單純炫技把代碼弄得很複雜,我是不推薦的。編程
廢話很少說,先來看一段代碼:ide
public interface JustInterface {
void justMethod(Object object);
}
public class JustInterface Impl implements JustInterface{
@Override
public void justMethod(Object object) {
// TODO Auto-generated method stub
do something…
}
}
// 在Main.class裏能夠這樣聲明和初始化:
public static void main( String[] args ) {
JustInterface justInterface = new JustInterfaceImpl();
justInterface.justMethod;
}
複製代碼
對於這段挺正經的面向接口編程的代碼,包括我本身,也一直處於似懂非懂的狀態,可是具體爲何會出現這種方式,我必定要想清楚纔會安心。函數
接下來請容許我用一個很俗的例子來講明這種方式。spa
故事是這樣的,雙手受傷的獨居宅男,想吃放在面前飯桌上的青椒炒牛肉。(別問爲何,宅男就是要吃青椒炒牛肉,也別問哪來的青椒炒牛肉,繼續看就好了),咱們須要一種方法,最好是人機接口,能夠幫助這位宅男不用手輕鬆吃到青椒炒牛肉。code
市面上有一種機械臂,他對外提供了一我的機接口。而接口裏面有一個方法,這個方法聽起來很符合宅男的要求:夾起機械臂面前的物體-移動到指定座標點-而後鬆開。看來只須要把這個機械臂放在飯桌上就好了。接口
因而雙手受傷的獨居宅男買了一個機械臂(怎麼買的,你不用知道),想經過這個機械臂來吃青椒炒牛肉。整個歡喜的過程以下:遊戲
// 在機械臂公司裏的組裝線是這樣的:
public interface 人機接口 {
void 傳遞物體(宅男嘴裏的位置);
}
public class 機械臂 implements 人機接口 {
@Override
public void 傳遞物體(宅男嘴裏的位置) {
夾起機械臂面前的物體;
移動到 宅男嘴裏的位置;
鬆開物體;
}
}
// 在宅男家裏:
main 函數 {
人機接口 = new 機械臂; //宅男準備開始使用帶有人機接口的實現了傳遞物體方法的機械臂
機械臂.傳遞物體(宅男嘴裏的位置); //機械臂夾起了放在面前的青椒炒牛肉,移動到宅男嘴裏的位置,而後鬆開了青椒炒牛肉。
}
複製代碼
對比一下文章開頭給出的代碼:博客
public interface JustInterface {
void justMethod(Object object);
}
public class JustInterface Impl implements JustInterface{
@Override
public void justMethod(Object object) {
// TODO Auto-generated method stub
do something…
}
}
// 在Main.class裏能夠這樣聲明和初始化:
public static void main( String[] args ) {
JustInterface justInterface = new JustInterfaceImpl();
justInterface.justMethod;
}
複製代碼
怎麼樣,這樣的通俗事例對於理解是否是簡單多了?和實際結合起來解決問題,我以爲是編程的首要核心。 至於宅男爲何不把頭埋下去用嘴直接吃青椒炒牛肉呢?多是長期玩遊戲,脖子僵硬吧。it
後記:宅男在機械臂的包裝盒子裏發現了一份迷之說明書,在說明上發現瞭如何設置機械臂的動做,因而邪惡的思想涌入了宅男的大腦。。。