日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

java桥接和装饰_设计模式:桥接模式和装饰模式

發布時間:2024/9/27 asp.net 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java桥接和装饰_设计模式:桥接模式和装饰模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:設計模式:橋接模式和裝飾模式

一、橋接模式簡介

1、基礎描述

橋梁模式是對象的結構模式。又稱為柄體(Handle and Body)模式或接口(Interface)模式。橋梁模式的用意是“將抽象化(Abstraction)與實現化(Implementation)脫耦,使得二者可以獨立地變化”。

2、場景問題描述

(1)、場景分析

在一個復雜的系統中,消息通知是一個必備模塊,一般封裝方式主要從下面兩個方式入手:

消息類型

用戶端消息(user-client)

管理端消息(system-client)

消息接收

郵件發送(email)

短信發送(msg)

(2)、場景圖解

3、模式圖解

4、核心角色

抽象化(Abstraction)角色:抽象化給出的定義,并保存一個對實現化對象的引用。

修正抽象化(RefinedAbstraction)角色:擴展抽象化角色,改變修正父類對抽象化的定義。

實現化(Implementor)角色:這個角色給出實現化角色的接口,但不給出具體的實現。

具體實現化(ConcreteImplementor)角色:這個角色給出實現化角色接口的具體實現。

5、Java應用場景

橋梁模式在Java應用中的一個非常典型的例子就是JDBC驅動器。抽象API可以對各種數據庫引擎發出SQL指令,并不直接與數據庫引擎互動,JDBC驅動器負責這個底層的工作。

JDBC的這種架構,把抽象部分和具體部分分離開來,從而使得抽象部分和具體部分都可以獨立地擴展。

二、裝飾模式

1、場景描述

孫悟空有七十二般變化,他的每一種變化都給他帶來一種附加的本領。他變成魚兒時,就可以到水里游泳;他變成鳥兒時,就可以在天上飛行。

2、場景圖解

3、基礎概念

裝飾模式又名包裝(Wrapper)模式。裝飾模式以對客戶端透明的方式擴展對象的功能,是繼承關系的一個替代方案。

裝飾模式以對客戶透明的方式動態地給一個對象附加上更多的責任。換言之,客戶端并不會覺得對象在裝飾前和裝飾后有什么不同。裝飾模式可以在不使用創造更多子類的情況下,將對象的功能加以擴展。

4、模式圖解

5、核心角色

抽象構件角色:給出一個抽象接口,以規范準備接收附加責任的對象。

具體構件角色:定義一個將要接收附加責任的類。

裝飾角色:持有一個構件對象的實例,并定義一個與抽象構件接口一致的接口。

具體裝飾角色:負責給構件對象“貼上”附加的責任。

6、該模式簡化

簡化抽象類

如果只有一個ConcreteComponent類,那么可以考慮去掉抽象的Component類(接口),把Decorator作為一個ConcreteComponent子類。

簡化裝飾類

如果只有一個ConcreteDecorator類,那么就沒有必要建立一個單獨的Decorator類,而可以把Decorator和ConcreteDecorator的責任合并成一個類。

7、半透明說明

1)、純粹的裝飾模式很難找到。裝飾模式的用意是在不改變接口的前提下,增強類的功能。

2)、在增強功能的時候,往往需要建立新的公開的方法。

3)、這就導致了大多數的裝飾模式的實現都是“半透明”的,而不是完全透明的。換言之,允許裝飾模式改變接口,增加新的方法。這意味著客戶端可以聲明ConcreteDecorator類型的變量,從而可以調用ConcreteDecorator類中才有的方法。

4)、半透明的裝飾模式是介于裝飾模式和適配器模式之間的。適配器模式的用意是改變類的接口,也可以通過改寫一個或幾個方法,或增加新的方法來增強類的功能。

5)、大多數的裝飾模式實際上是半透明的裝飾模式,這樣的裝飾模式也稱做半裝飾、半適配器模式。

8、JDK中IO流

1)、基本描述

裝飾模式在Java語言中的最經典的應用就是Java I/O類庫的設計。很少單一的創建流對象,通過創建多個疊合對象來提供所期望的IO流功能,因此裝飾模式是Java I/O類庫的基本模式。

2)、IO流圖解描述

抽象構件角色:由InputStream扮演。這是一個抽象類,為各種子類型提供統一的接口。

具體構件角色:由FileInputStream、StringBufferInputStream等類扮演。它們實現了抽象構件角色所規定的接口。

抽象裝飾角色:由FilterInputStream扮演。它實現了InputStream所規定的接口。

具體裝飾角色:由幾個類扮演,分別是BufferedInputStream、DataInputStream以及兩個不常用到的類LineNumberInputStream、PushbackInputStream。

9、模式的優點

(1)裝飾模式與繼承關系的目的都是要擴展對象的功能,但是裝飾模式可以提供比繼承更多的靈活性。裝飾模式允許系統動態決定“貼上”一個需要的“裝飾”,或者除掉一個不需要的“裝飾”。繼承關系則不同,繼承關系是靜態的,它在系統運行前就決定了。

(2)通過使用不同的具體裝飾類以及這些裝飾類的排列組合,工程師可以創造出很多不同行為的組合。

10、模式的優點

由于使用裝飾模式,可以比使用繼承關系需要較少數目的類。使用較少的類,當然使設計比較易于進行。但是,在另一方面,使用裝飾模式會產生比使用繼承關系更多的對象。返回搜狐,查看更多

責任編輯:

總結

以上是生活随笔為你收集整理的java桥接和装饰_设计模式:桥接模式和装饰模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美一级片一区 | 善良的女朋友在线观看 | 日本女优一区 | 国产精品一区二区久久久 | 麻豆chinese极品少妇 | 一道本在线 | 免费在线中文字幕 | 国产成人精品a视频一区 | 久久97精品 | 色多多黄色 | 神马久久精品 | 日本www网站 | 老司机午夜影院 | 毛片手机在线 | 精品久久久久久无码国产 | 香蕉a视频 | 一级大毛片 | 日本大胆裸体做爰视频 | 韩国一区二区在线播放 | 99这里只有 | 蜜臀av一区二区三区 | 高清久久久| av色噜噜 | 国产精品白嫩白嫩大学美女 | 午夜日韩在线观看 | 波多野结衣办公室33分钟 | 免费看的黄网站 | 致命魔术电影高清在线观看 | xxx久久| 爱操在线 | 日韩精品导航 | 久久久精品影视 | 香蕉成人网 | 久久久久成人网站 | 亚洲理论在线观看 | 久久尹人 | 日韩黄色三级 | 综合天天| 娇小6一8小毛片 | 两个小y头稚嫩紧窄h文 | h在线观看视频 | sm国产在线调教视频 | 免费久久视频 | 日韩久久久 | 亚洲欧洲精品一区二区三区 | av老司机在线播放 | 亚洲综合在线中文字幕 | 波多野结衣一区二区三区免费视频 | 国产富婆一级全黄大片 | av亚洲在线观看 | 色小姐在线视频 | 精品女厕偷拍一区二区 | 韩国美女视频在线观看18 | 亚洲一区二区三区不卡视频 | 国产精品高潮呻吟久久久久久 | 91色交视频| 大桥未久恸哭の女教师 | 国产精品6666 | 欧美精品在线观看一区二区 | 免费在线 | 97超碰免费在线 | 免费一级片网址 | aa片在线观看视频在线播放 | 欧美熟妇另类久久久久久不卡 | 国产精品熟女视频 | 久久综合久色欧美综合狠狠 | 丰满少妇被猛烈进入一区二区 | 亚洲 欧美 激情 另类 | 上原亚衣在线观看 | 久久久精品电影 | 欧美视频在线观看 | 日韩欧美精品 | 国产午夜精品一区二区三区视频 | 午夜国产福利在线观看 | 揄拍成人国产精品视频 | 日日操夜夜爽 | 在线观看免费成人 | 草av在线| 在线观看免费观看在线 | 精品熟妇一区二区三区 | 天天干天天上 | 十八岁世界在线观看高清免费韩剧 | 老司机免费精品视频 | 黄片毛片视频 | 精品欧美一区二区三区 | 97超碰在 | 91视频综合网 | 激情亚洲 | 成人性生交大片免费看r链接 | 成人在线观看视频网站 | 婷婷资源网 | 4438x全国最大成人网 | 91禁动漫在线 | 亚洲一区二区在线电影 | 在线观看免费高清在线观看 | 精品少妇| www.自拍| 手机在线观看av | jizz黑人|