麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

設計模式初探(一)「適配器模式」

2019-11-11 05:02:19
字體:
來源:轉載
供稿:網友

本系列主要是對自己在閱讀《設計模式的藝術》和《java設計模式》兩本書中知識的分類總結。

初探

在工作中,我們多多少少都會感受到設計模式給我的開發帶來的好處,以前一直是臨時抱佛腳,遇上不懂的了臨時搜索一下,沒有成為自己的知識體系中的一環。17年初,我立志改善這種情況,經過前輩推薦正在閱讀《設計模式的藝術》和《Java設計模式》。為了加強自己的認知,故寫出這系列的個人學習筆記。

設計模式

因為這是第一篇所以需要先記錄一下設計模式的基礎知識。

設計模式的起源

設計模式并不是IT界獨有的東西,它起源于建筑學,應用于很多的學科。

GoF將設計模式引入軟件工程領域。

設計模式的目的

設計模式的目的是為了解決問題。我個人認為設計模式就是我們經常講的對于特定問題的最佳實踐。我認為對于缺乏經驗的人來說設計模式起引導作用(例如我)。而對于經驗豐富的人來說設計模式其實只是問題解決方案的一部分。

適配器模式

適配器其實在我們生活中很常見,最常見的就是電源適配器。將220V的電壓轉換為電器所使用的電壓。這種作用的部分就叫做適配器。

我們再回推回編程環境中。在我們開發的過程中最常見的一種情況就是數據庫保存的字段和對外接口所用的字段不同。其實這種情況在大多數編程語言中都已經有比較好的成熟的解決方式。但其實這也是一適配方式。

再回歸到我們的所要講的內容。適配器模式主要解決的就是兼容性問題。

先明確幾個概念幫助我們理解適配器的核心思想。

適配器類(用來包裝適配者)適配者類(被適配的類)目標抽象類(外部使用所需的接口)

適配器模式的實現主要通過兩種方式: * 繼承自適配者類,實現目標抽象類的接口。 * 繼承自目標抽象類,并對適配者類進行引用。

在實際開發中我們第一種方式比較常見:

//Java實現public interface Book { String getName(); double getPRice();}class BookInfo { private String name = "設計模式的藝術"; private double price = 99.9; public String getName() { return name; } public double getPrice() { return price; }}class FirstBook extends BookInfo implements Book {}

因為Java的單繼承特性,這種方式只能適配單個適配者。

像C++一樣的多繼承語言可以同時適配多個適配者。

在學習I/O的時候,有個叫做過濾器的概念,我覺得這個過濾器也是這個套路。

BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(new File(“a.txt”)))

java中使用了這種將類的引用傳給包裝類來進行多適配者的適配工作。

public class Main { public static void main(String[] args) { BookInfo bookInfo = new Book(); System.out.println(bookInfo.getName()); System.out.println(bookInfo.getPrice()); }}class BookName { private String name = "設計模式"; public String getName() { return name; }}class BookPrice { private double price = 99.9; public double getPrice() { return price; }}interface BookInfo { String getName(); double getPrice();}class Book implements BookInfo{ private BookName bookName; private BookPrice bookPrice; public Book(){ this.bookName = new BookName(); this.bookPrice = new BookPrice(); } @Override public String getName() { return bookName.getName(); } @Override public double getPrice() { return bookPrice.getPrice(); }}

缺省適配器模式

在使用的時候我們不希望把所有的方法都實現一遍。這時就需要缺省的配置。我們可以建立一個缺省適配器的類,對所需的接口進行部分或者全部的缺省實現。這樣我們在使用的時候就可以直接繼承這個缺省的實現,重載掉我們需要自定義的方法就可以了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91精选视频在线观看 | 在线观看免费精品 | 成年人在线视频免费 | 国产亚洲精品久久久久婷婷瑜伽 | 成人免费一区二区三区在线观看 | 国产一级毛片网站 | 亚洲欧美成aⅴ人在线观看 av免费在线播放 | 久久网页 | 91精品视频在线看 | 国产a级久久 | 31freehdxxxx欧美 | 久久久成人一区二区免费影院 | 色中色综合 | 欧美日韩在线播放 | 午夜视频你懂的 | 夜夜b | av免费不卡国产观看 | 毛片免费观看视频 | 日韩精品中文字幕在线播放 | 色人久久 | 性爱视频免费 | 欧美城网站地址 | 97青青草视频 | 国产精品视频成人 | 九九热在线免费观看视频 | 精品国产呦系列在线看 | 91成人在线网站 | 久久成人激情视频 | 最新欧美精品一区二区三区 | 538在线精品 | 欧美精品一区自拍a毛片在线视频 | 经典三级在线视频 | 污视频在线免费播放 | 男人午夜视频 | 亚洲人成网站免费播放 | 91av大片| 黄色网址你懂的 | 91精品国产综合久久久欧美 | 欧美成人视 | 成人高清网站 | 黄色av网站在线观看 |