天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

系統(tǒng)架構技能之設計模式—適配器模式

  一、上篇回顧

  通過上篇的簡單講解,我們知道了,組合模式意圖是通過整體與局部之間的關系,通過樹形結構的形式進行組織復雜對象,屏蔽對象內(nèi)部的細節(jié),對外展現(xiàn)統(tǒng)一的方式來操作對象,是我們處理更復雜對象的一個手段和方式。本文以查詢控件為例,說明了,查詢控件內(nèi)部的組成元素,及如何操作內(nèi)部的組成元素,包括添加元素,刪除和處理相應事件的Handler,當然組合模式的作用遠比這些強大,后面我們肯定會在一些實例代碼中運用到組合模式的。組合模式如果在條件允許的情況下,我們盡量使用組合模式來處理復雜對象,遠比通過繼承出來的對象來的有效。

  組合模式-強調的是如何組織整體和局部之間的結構,將整體和局部之間的關系,通過樹形這樣的結構來組織這種對象組合的結構關系。

  組合模式的適用場景:

  1、我們期望操作一個復雜對象和操作一個組成這個復雜對象內(nèi)部的簡單對象一樣操作的時候,我們可以考慮對象組合。

  2、當一個對象由多個簡單對象組成,并且它又可能是其他對象的一個組成部分,這種情況下,組合模式是比較好的選擇。

  二、摘要

  本篇將會講述結構型模式中的經(jīng)典模式-適配器模式,也是項目中經(jīng)常使用的模式之一,我們現(xiàn)在開發(fā)一個系統(tǒng)的時候,也許會遇到各式各樣的要求,我們要求和現(xiàn)有的系統(tǒng)進行集成,或者是我們直接開發(fā)一個系統(tǒng),或者是我們修改已有的系統(tǒng)達到滿足現(xiàn)有需求的要求。因此一般來說,每種情況,我們都有自己的應對方案。我們來看看項目中的幾種可能情況:

image

  通過上面的幾種情況,我們知道,開發(fā)一個新系統(tǒng)吧,成本和時間的投入較高,如果說我們舊系統(tǒng)目前運行的非常穩(wěn)定,并且投入的成本非常高,我們既想繼續(xù)使用舊系統(tǒng)的功能,又想滿足新系統(tǒng)的需求,這個時候,我們怎么做呢?可能比較好的方式就是把舊系統(tǒng)通過適配器來轉換成新接口的調用形式,完成適配服務。當然本文也是主要針對這個思路,展開去講述適配器模式的一些用法,當然我這里可能講解了適配器模式的一些普遍用法,還有一些比較特殊的用法,需要大家多多指出,向大伙學習了。

  本文主要講述下面的幾個部分的內(nèi)容:

  1、適配器模式的使用場景。

  2、適配器模式的經(jīng)典實現(xiàn)。

  3、多適配器的封裝。

  4、其他情況的考慮。

  三、本文大綱

  a、上篇回顧。

  b、摘要。

  c、本文大綱。

  d、適配器模式的特點及使用場景。

  e、適配器模式的經(jīng)典實現(xiàn)。

  f、適配器模式的其他方案。

  g、適配器模式使用總結。

  四、適配器模式的特點及使用場景

  4.1、適配器模式的特點

  適配器模式主要解決的問題就是我們要調用的接口類型,無法滿足我們新系統(tǒng)的使用需求,這時候,我們需要將舊系統(tǒng)的接口,通過適配器進行轉配,達到支持新接口調用的目的。對于這樣的要求,我們通過適配器就可以完成,當然如果有多個接口需要轉配,那么我們就需要為每一個接口提供一個適配器去完成轉換的工作。當然具體的調用過程,我們可以進行相應的封裝。達到比較通用的方式去調用適配器,完成適配服務。我們來看看適配的過程。        image  上圖基本給出了適配器的基本轉換的過程。

  4.2、適配器模式的場景

  我們根據(jù)上面的適配器的特點的介紹中,我們來分析下適配器模式的幾類比較適用的使用場景:

  1、我們在使用第三方的類庫,或者說第三方的API的時候,我們通過適配器轉換來滿足現(xiàn)有系統(tǒng)的使用需求。

  2、我們的舊系統(tǒng)與新系統(tǒng)進行集成的時候,我們發(fā)現(xiàn)舊系統(tǒng)的數(shù)據(jù)無法滿足新系統(tǒng)的需求,那么這個時候,我們可能需要適配器,完成調用需求。

  3、我們在使用不同數(shù)據(jù)庫之間進行數(shù)據(jù)同步。(我這里只是分析的是通過程序來說實現(xiàn)的時候的情況。還有其他的很多種方式[數(shù)據(jù)庫同步])。

  五、適配器模式的經(jīng)典實現(xiàn)

  我們本節(jié)給出適配器模式的經(jīng)典實現(xiàn)代碼,我們這里結合項目中的查詢服務來進行說明,舊系統(tǒng)中提供一個查詢服務方法Query();但是我新系統(tǒng)定義底層的數(shù)據(jù)訪問服務層的時候,卻是使用的GetList()方法,并且將之前的返回結果集合進行包裝成泛型的形式來進行。我們這里給出相關的示例代碼,大家就能清楚這個使用過程了,當然我們這里給出類適配器和對象適配器2種實現(xiàn)的方式,通過不同的實現(xiàn)思路,我們最后總結下,這2種形式的優(yōu)缺點:

  1、類適配器

  針對上面描述的接口的轉配過程,我們給出示例代碼:

舊系統(tǒng)的查詢服務:
public class Query :IQuery
{
public object Query()
{
return new object();
}
}
新系統(tǒng)的查詢服務接口:
public interface ISelect
{
object GetList();
}
通過類適配器完成轉配操作:
public class QueryAdapter : Query, ISelect
{
public object GetList()
{
return base.Query();
}
}
具體的調用測試代碼如下:
class Program
{
static void Main(string[] args)
{
ISelect adapter
= new QueryAdapter();
object o= adapter.GetList();
System.Threading.Thread.Sleep(
10000);

}
}

it知識庫系統(tǒng)架構技能之設計模式—適配器模式,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 伊人久久大香线蕉观看 | 午夜福利视频极品国产83 | 伊人久久精品线影院 | 小萝ar视频网站 | 国产麻豆精品久久一二三 | 在线观看永久免费网址 | 国产精品涩涩涩视频网站 | 男女XX00上下抽搐动态图 | 岛国大片在线观看完整版 | 亚洲免费人成在线视频观看 | 小伙无套内射老女人 | 热巴两次用约老师屁股发底线球 | 亚洲国产日韩欧美视频二区 | 国产高清国内精品福利色噜噜 | 国产精品视频人人做人人爽 | 99re6久久热在线播放 | 肉肉的各种姿势高H细文 | 色久久久综合88一本道 | 婬香婬色天天视频 | 老熟女毛茸茸浓毛 | 久久午夜一区二区 | 久久视频在线视频观看天天看视频 | 啦啦啦 中文 日本 韩国 免费 | 日韩专区亚洲国产精品 | 无码骚夜夜精品 | 男人大臿蕉香蕉大视频 | 亚洲AV久久久噜噜噜久久 | 6080伦理久久亚洲精品 | 色AV色婷婷97人妻久久久 | 国产福利视频在线观看福利 | 小舞被爆操 | 99久久爱看免费观看 | 啊灬啊别停灬用力啊在线观看视频 | 超污视频带污疼免费视频 | 一区二区三区高清视频 | 国产三级级在线电影 | 久久草这里全是精品香蕉频线观 | 97精品国产亚洲AV超碰 | 天美传媒 免费观看 | 啊灬啊别停灬用力啊在线观看视频 | 在线观看成人3d动漫入口 |