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

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

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

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

本系列主要是對自己在閱讀《設計模式的藝術》和《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(); }}

缺省適配器模式

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品99久久99久久久二 | 精品一区二区在线观看视频 | 欧美不卡视频在线观看 | 午夜天堂在线视频 | 久久国产免费视频 | 夜夜b| 中文字幕线观看 | 新久草在线视频 | 黄色的视频免费看 | 特黄一区二区三区 | 久久人添人人爽人人爽人人片av | 天天色综合2 | 91av视频大全 | 黄色网址在线视频 | 精品一区二区久久久久久按摩 | 亚洲成人免费视频在线 | 久久国产精品二国产精品中国洋人 | 精品国产一区二区三区四区在线 | 91成人在线免费 | 国产精品啪一品二区三区粉嫩 | 九九热免费视频在线观看 | 国产精品欧美久久久久一区二区 | 韩国一级免费视频 | 狠狠干五月天 | 日本视频在线免费观看 | av在线免费观看网站 | 黄色片免费看看 | 黄色网址免费在线 | 日本网站在线看 | 毛片在线视频在线播放 | 13一14毛片免费看 | 99精品国产在热久久婷婷 | 羞羞羞羞视频 | av成人在线免费观看 | 欧美日韩亚洲国产 | 日韩视频一区在线 | 免费看成年人网站 | 久久精品中文字幕一区 | 性看小视频 | 999久久国精品免费观看网站 | 精品一区二区三区免费爱 |