原創(chuàng)博客,轉(zhuǎn)載請注明出處码秉。
相信小伙伴們都知道面向接口編程的好處逮矛,這里我不再敘述。重點是怎么理解這種困擾新手的方式转砖。編程嘛须鼎,肯定是為了解決實際問題,如果不能很好的和生活中的事例相結(jié)合府蔗,單純炫技把代碼弄得很復(fù)雜晋控,我是不推薦的。
廢話不多說姓赤,先來看一段代碼:
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;
}
對于這段挺正經(jīng)的面向接口編程的代碼糖荒,包括我自己,也一直處于似懂非懂的狀態(tài)模捂,但是具體為什么會出現(xiàn)這種方式,我一定要想清楚才會安心蜘矢。
接下來請允許我用一個很俗的例子來說明這種方式狂男。
故事是這樣的,雙手受傷的獨居宅男品腹,想吃放在面前飯桌上的青椒炒牛肉岖食。(別問為什么,宅男就是要吃青椒炒牛肉舞吭,也別問哪來的青椒炒牛肉泡垃,繼續(xù)看就行了)析珊,我們需要一種方法,最好是人機接口蔑穴,可以幫助這位宅男不用手輕松吃到青椒炒牛肉忠寻。市面上有一種機械臂,他對外提供了一個人機接口存和。而接口里面有一個方法奕剃,這個方法聽起來很符合宅男的要求:夾起機械臂面前的物體-移動到指定坐標(biāo)點-然后松開【柰龋看來只需要把這個機械臂放在飯桌上就行了纵朋。于是雙手受傷的獨居宅男買了一個機械臂(怎么買的,你不用知道)茄袖,想通過這個機械臂來吃青椒炒牛肉操软。整個歡喜的過程如下:
// 在機械臂公司里的組裝線是這樣的:
public interface 人機接口 {
void 傳遞物體(宅男嘴里的位置);
}
public class 機械臂 implements 人機接口 {
@Override
public void 傳遞物體(宅男嘴里的位置) {
夾起機械臂面前的物體;
移動到 宅男嘴里的位置宪祥;
松開物體聂薪;
}
}
// 在宅男家里:
main 函數(shù) {
人機接口 = new 機械臂; //宅男準(zhǔn)備開始使用帶有人機接口的實現(xiàn)了傳遞物體方法的機械臂
機械臂.傳遞物體(宅男嘴里的位置); //機械臂夾起了放在面前的青椒炒牛肉,移動到宅男嘴里的位置品山,然后松開了青椒炒牛肉胆建。
}
對比一下文章開頭給出的代碼:
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;
}
怎么樣,這樣的通俗事例對于理解是不是簡單多了肘交?和實際結(jié)合起來解決問題笆载,我覺得是編程的首要核心。
至于宅男為什么不把頭埋下去用嘴直接吃青椒炒牛肉呢涯呻?可能是長期玩游戲凉驻,脖子僵硬吧。
后記:宅男在機械臂的包裝盒子里發(fā)現(xiàn)了一份迷之說明書复罐,在說明上發(fā)現(xiàn)了如何設(shè)置機械臂的動作涝登,于是邪惡的思想涌入了宅男的大腦。效诅。胀滚。