最近一段時間在為了完成Sponsor布置的作業(yè)努力閱讀中袖牙,剛巧幾天之前看到了關(guān)于依賴倒置原則的一些問題跺撼,所以先按照一般的習(xí)慣說一說我理解的依賴倒置原則是什么好了紊服。
關(guān)于依賴倒置原則枚抵,大概就是說瓢宦,高層的邏輯不應(yīng)該依賴于底層邏輯的實現(xiàn)柜候,就像是不應(yīng)該把人作為鬧鐘的一個參數(shù)一樣搞动,如果這樣的話就相當(dāng)于將鬧鐘和鬧鐘綁死在一起,這無疑意味著每個人都對應(yīng)著一個鬧鐘渣刷,鬧鐘想要存在必須要有一個人鹦肿,可是現(xiàn)實生活中這顯然是不正確的一個實例,這是對于現(xiàn)實生活我們想一想大概就清楚的部分辅柴,其實一直剛讓人覺得不是那么確切的業(yè)務(wù)邏輯要怎么避免高層依賴底層的情況出現(xiàn)就是很讓人頭疼的事情了箩溃,有的時候用面向?qū)ο蟮脑O(shè)計方式還是有可能會造成違反這一原則的情況產(chǎn)生,而且還可能是在代碼完成后很久的某一天才發(fā)現(xiàn)是違反了碌嘀,一直沒有想到什么太好的辦法涣旨,所以說這個地方等想到了的時候我再更新好了。
關(guān)于依賴倒置原則不太準(zhǔn)確但是應(yīng)該能很精確的形容遵從和違反的好處與壞處的例子是我突然想到的股冗,昨天和女朋友在東直門去南鑼鼓巷的路上霹陡,看到了很多之前政府做的公共自行車,但是幾乎沒有人騎止状,貌似在ofo烹棉,摩拜單車出現(xiàn)之后,騎的人就更少了导俘。然后突然在想一個問題峦耘,大家覺得,做這個公共自行車的人是不是也在騎ofo或者摩拜單車呢旅薄?哈哈辅髓,開個玩笑。大家想想看為什么之前推廣這個公共自行車的時候沒什么人少梁,但是ofo也好洛口,摩拜也好,用了沒有多久的時間就讓很多人都開始了自己的自行車之旅了呢凯沪?首先來說第焰,押金是類似的,不同的是什么妨马?我聽了不止一個同事和我說挺举,ofo好啊因為它可以隨便停車杀赢,不用停到定點的位置,你想想看湘纵,如果我要工作的地方是在兩個停車點的中間脂崔,但是我想騎車去上班,為了不讓自己花冤枉錢梧喷,我只能先騎到那個停車點然后再走去公司砌左,那我騎車的意義在哪?說起來也是铺敌,那么大概就能得到是因為公共自行車的模式的問題才讓我們覺得使用這個自行車很難或者說很不實用汇歹。這樣的模式使得人和自行車的耦合太大了,人必須要遵從自行車的規(guī)則才能使用自行車偿凭,可這顯然是不合情理的一件事产弹,我想沒有一個人愿意這樣的吧,除非剛好規(guī)則正好是符合自己的利益條件的時候弯囊。相比之下取视,ofo和摩拜所做的剛好是把人和自行車之間的這個耦合解開了,人不需要過于遵從這份規(guī)則常挚,只需要隨意停車就好,有這個規(guī)則在的也是必須的稽物,這樣把耦合降到最低也讓更多的人樂于使用了奄毡。
其實說到這兩個的對比也剛好是為了闡述一下DIP的內(nèi)容,讓自己可以有更加深刻的記憶贝或,說起來公共自行車吼过,其實也不是像我說的沒有考慮過吧,也許是因為當(dāng)時局限在當(dāng)時的科技咪奖,智能手機沒有太普及之類的一些其他的客觀因素盗忱,不過這樣的高耦合卻是的的確確存在的。