看完了<妙味>和<華醫>,又不由自主的找小說看,點開了推薦裏面隨機彈出的<暗戀。橘生淮南>,翻了下里面的評論,有個讀者從裏面摘了一段本身很喜歡的話出來,我看了也很喜歡,放在下面。php
‘咱們都是 同樣的人。庸庸碌碌,看上去不配擁有出衆的故事;被生活撮成一堆,甚至不能擁有幾許不一樣。然而,咱們都知道本身那個獨一無二的祕密。歸納起來是幾句雷同的話;鋪展開來,卻有着千差萬別的紋路與質地。它像一個胎記,凝結在衣服下面,日常你不會刻意想起,卻總在獨自一人的祕密時刻,脫衣,洗澡,低下頭,突然看見。祕密讓每一個人變得不同。’html
我有強迫症,故事很差便不肯意看,故事很吸引人我又會熬夜,這種感受很糟糕,睡很差覺,擾亂了生活。我真的得暫停一下,暫時不追劇,不追小說。java
這兩天比較忙,一直沒時間寫,今天(2019-08-23)知道了亞馬遜熱帶雨林着火的新聞,真的好難過,之後我登山毫不玩火。還有我儘可能不浪費衛生紙,由於紙是用木頭作的。python
軟件開發中適配器的通常概念與物理世界中的相同。若是你去過不一樣的國家,你可能會認識到他們中的不少人使用不一樣形狀的電源插座。不少時候,它們的形狀使得電子設備的插頭不適合。那麼,您如何將手機或筆記本電腦的充電器鏈接到這些電源插座?android
答案很簡單。您將得到一個適配器,您能夠將其放入電源插座,而後將其插入適配器的另外一端。適配器更改了插頭的形狀,以便您可使用電源插座。在那個例子和大多數其餘狀況下,適配器不提供任何附加功能。它只是讓您將插頭鏈接到電源插座。segmentfault
適配器就是一種適配中間件,將兩種不匹配的東西進行適配鏈接,舉一個生活中的例子。小金最近買了最新款的macbook pro,可是發現電腦的數據接口都變成了Type c接口,這致使了以前的全部的 usb設備都不可用。那應該怎麼辦呢?這個時候就須要淘寶買一個可以將type c 轉換成usb的器件,咱們稱之爲適配器。設計模式
那麼適配器模式又是什麼呢?適配器模式就是從適配器得到的靈感,將兩種不太適配的代碼進行適配,這種模式就是適配器模式了。app
適配器模式解決的問題是,使得本來因爲接口不兼容而不能一塊兒工做、不能統一管理的那些類能夠在一塊兒工做、能夠進行統一管理。ide
將一個接口轉換成客戶但願的另外一個接口,適配器模式使接口不兼容的那些類能夠一塊兒工做,其別名爲包裝器(Wrapper)spa
1.使用繼承實現適配器的類適配器模式。
2.使用組合引用的對象適配器模式。
類的適配器模式將適配者類中的方法繼承過來變成目標類的API
從上圖中Target接口能夠看出客戶端須要 operation1方法和operation2方法,可是Adaptee(適配者類)中只提供了operation1方法,這時經過Adapter(適配器類)繼承Adaptee而且補充缺失的operation2方法知足了 客戶端的需求
2. 適配器能夠重定義Adaptee的部分行爲,至關於子類覆蓋父類的部分實現方法。
1.要重定義Adaptee的行爲比較困難,這種狀況下,須要定義Adaptee的子類來實現重定義,而後讓適配器組合子類。雖然重定義Adaptee的行爲比較困難,可是想要增長一些新的行爲則方便的很,並且新增長的行爲可同時適用於全部的源
2.須要額外的引用來間接獲得Adaptee
適配器模式包含一下三個角色:
1:Target(目標抽象類):目標抽象類定義客戶所需的接口,能夠是一個抽象類或接口,也能夠是具體類。在類適配器中,因爲java、php語言不支持多重繼承,因此它只能是接口。
2:Adapter(適配器類):它能夠調用另外一個接口,做爲一個轉換器,對Adaptee和Target進行適配。它是適配器模式的核心。
3:Adaptee(適配者類):適配者即被適配的角色,它定義了一個已經存在的接口,這個接口須要適配,適配者類包好了客戶但願的業務方法。
適配器模式主要應用於但願複用一些現存的類,可是接口要求又與複用環境要求不一致的狀況
#舉個例子
這裏只關注設計模式,忽略了類的複雜度。
#target, 須要安卓的充電縣 class Android: def __init__(self): pass def connect_mobile(self,mobile): print('我是安卓手機,須要安卓手機充電線') mobile.connectAn() #adapter class Adapter: def __init__(self): self._connectApple=Apple() def connectAn(self): print('適配器來了,是個轉換接口,蘋果充電線接上適配器就能給安卓手機充電了') self._connectApple.connectAp() #adaptee , 這是個蘋果手機的充電線 class Apple: def __init__(self): pass def connectAp(self): print('有蘋果手機充電線') if __name__=='__main__': androidM=Android() adapter=Adapter() androidM.connect_mobile(adapter)
https://www.2cto.com/kf/201701/587563.html
https://www.jianshu.com/p/d8cb02e04820
http://baijiahao.baidu.com/s?id=1602052478806736569&wfr=spider&for=pc
https://cloud.tencent.com/developer/news/385217
https://my.oschina.net/kimyeongnam/blog/3026273
https://segmentfault.com/a/1190000019443493?utm_source=tag-newest
https://blog.csdn.net/KeJianLinLiu/article/details/82780629