今天讲讲依(hun)赖(chi)注(deng)入(si)(DI,Dependency Injection)
通俗的说就是衣来伸手,饭来张口。像极了在家喊我妈的样子。
看看平常我在家是怎么喊我妈的,下面这个是我,能吃又能喝,好吃的好喝的都想要。
/**
* 儿砸类
*/
public class ErZa {
public void chi(HaoChiDe haoChiDe){
System.out.println(haoChiDe.haoChi());
}
public void he(HaoHeDe haoHeDe){
System.out.println(haoHeDe.haoHe());
}
}
我的终极目标是混吃等死,就像下面这样:
/**
* 混吃等死
*/
public class HunChiDengSi {
public static void main(String[] args) {
ErZa erZa = new ErZa();
//儿砸喝可乐
erZa.he(new KeLe());
//儿砸吃饺子
erZa.chi(new JiaoZi());
}
}
依赖注入的精华就在上面这最后一句话,我仔细解析一下:
依赖注入简直是混吃等死的经典之作了,我只需要张着嘴,就可以被投喂到各种各样的好吃的好喝的,只需要会吃会喝!
会做?不需要的!这辈子是不可能的。
什么都系好吃好喝我管不着,反正就是好吃、好喝就行:
public interface HaoChiDe {
public String haoChi();
}
public interface HaoHeDe {
public String haoHe();
}
饺子好吃,实现了haoChiDe接口
/**
* 饺子
*/
public class JiaoZi implements HaoChiDe{
public String haoChi() {
return "饺子好吃";
}
}
可乐好喝,实现了haoHeDe接口
/**
* 可乐
*/
public class KeLe implements HaoHeDe{
public String haoHe() {
return "可乐好喝";
}
}
最后我们看看不混吃等死的奋斗青年是什么样的:
public class HaoErZa {
//自己煮饺子
public void ziJiZhuJiaoZi() {
System.out.println("饺子好吃");
}
//自己买可乐
public void ziJiMaiKeLe() {
System.out.println("可乐好喝");
}
}
发现奋斗青年只会能吃能喝是不行, 还需要自己会做饭,这可就难了。完全没有躺着被喂到嘴边爽。
public class FenDou {
public static void main(String[] args) {
HaoErZa haoErZa = new HaoErZa();
haoErZa.ziJiMaiKeLe();
haoErZa.ziJiZhuJiaoZi();
}
}