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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

java 桥接模式_JAVA设计模式之【桥接模式】

發(fā)布時(shí)間:2024/1/23 asp.net 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 桥接模式_JAVA设计模式之【桥接模式】 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

橋接模式

蠟筆中顏色和型號(hào)之間存在耦合

毛筆中,顏色和型號(hào)解耦了

如果軟件系統(tǒng)中某個(gè)類存在兩個(gè)獨(dú)立變化的維度,橋接模式可以將兩個(gè)維度分離出來(lái)

角色

抽象類

擴(kuò)充抽象類

實(shí)現(xiàn)類接口

提供基本操作

抽象類定義的接口會(huì)做更多更負(fù)責(zé)的操作

使用關(guān)聯(lián)關(guān)系,替代繼承關(guān)系

具體實(shí)現(xiàn)類

面向?qū)ο笏枷?/p>

單一職責(zé)原則

開(kāi)閉原則

合成復(fù)用原則

里氏替換原則

依賴倒轉(zhuǎn)原則

毛筆案例

毛筆型號(hào)維度

大毛筆

中毛筆

小毛筆

型號(hào)是毛筆的抽象部分,顏色是毛筆的實(shí)現(xiàn)部分

毛筆顏色維度

黑色

紅色

灰色

藍(lán)色

...

毛筆和顏色之間是聚合關(guān)系

圖片案例

Image充當(dāng)抽象類

子類JPGImage,PNGImage、BMPImage和GIFImage充當(dāng)擴(kuò)充抽象類

ImageImp充當(dāng)實(shí)現(xiàn)類接口

子類WindowsImp、LinuxImp、UnixImp充當(dāng)具體實(shí)現(xiàn)類

像素輔助類,Matrix,不同操作系統(tǒng)提供不同的方式顯示像素矩陣

橋接模式可以和適配器模式結(jié)合使用

1.圖片實(shí)現(xiàn)類接口

package Bridge;

/**

* Created by e550 on 2016/10/3.

*/

public interface ImageImp {

public void doPaint(Matrix m);

}

2.圖片抽象類

package Bridge;

/**

* Created by e550 on 2016/10/3.

*/

abstract class Image {

protected ImageImp imp;

public void setImageImp(ImageImp imp) {

this.imp = imp;

}

public abstract void parseFile(String fileName);

}

3.圖片擴(kuò)充抽象類

JPG

package Bridge;

/**

* Created by e550 on 2016/10/3.

*/

public class JPGImage extends Image{

public void parseFile(String fileName) {

Matrix m = new Matrix();

imp.doPaint(m);

System.out.println(fileName + ",格式為JPG");

}

}

PNG

package Bridge;

/**

* Created by e550 on 2016/10/3.

*/

public class PNGImage extends Image{

public void parseFile(String fileName) {

Matrix m = new Matrix();

imp.doPaint(m);

System.out.println(fileName + ",格式為PNG。");

}

}

GIF

package Bridge;

/**

* Created by e550 on 2016/10/3.

*/

public class GIFImage extends Image{

public void parseFile(String fileName) {

Matrix m = new Matrix();

imp.doPaint(m);

System.out.println(fileName + ",格式為GIF。");

}

}

BMP

package Bridge;

/**

* Created by e550 on 2016/10/3.

*/

public class BMPImage extends Image{

public void parseFile(String fileName) {

Matrix m = new Matrix();

imp.doPaint(m);

System.out.println(fileName + ",格式為BMP。");

}

}

4.具體實(shí)現(xiàn)類

Windows

package Bridge;

/**

* Created by e550 on 2016/10/3.

*/

public class WindowsImp implements ImageImp{

public void doPaint(Matrix m) {

//調(diào)用Windows系統(tǒng)的繪制函數(shù)繪制像素矩陣

System.out.println("在Windows操作系統(tǒng)中顯示圖像:");

}

}

Linux

package Bridge;

/**

* Created by e550 on 2016/10/3.

*/

public class LinuxImp implements ImageImp{

public void doPaint(Matrix m) {

//調(diào)用Windows系統(tǒng)的繪制函數(shù)繪制像素矩陣

System.out.println("在Linux操作系統(tǒng)中顯示圖像:");

}

}

Unix

package Bridge;

/**

* Created by e550 on 2016/10/3.

*/

public class UnixImp implements ImageImp{

public void doPaint(Matrix m) {

System.out.println("在Unix操作系統(tǒng)中顯示圖像:");

}

}

5.客戶端

package Bridge;

/**

* Created by e550 on 2016/10/3.

*/

public class Client {

public static void main(String args[]) {

Image image;

ImageImp imp;

image = new GIFImage();

imp = new LinuxImp();

image.setImageImp(imp);

image.parseFile(" 日出美景");

}

}

執(zhí)行結(jié)果

在Linux操作系統(tǒng)中顯示圖像:

日出美景,格式為GIF。

再看一個(gè)筆的例子

1.Color接口

package Bridge.PenColor;

/**

* Created by e550 on 2016/10/3.

*/

public interface Color {

void bepaint(String penType,String name);

}

2.Pen抽象類

package Bridge.PenColor;

/**

* Created by e550 on 2016/10/3.

*/

public abstract class Pen {

protected Color color;

public void setColor(Color color) {

this.color = color;

}

public abstract void draw(String name);

}

3.Color接口實(shí)現(xiàn)

package Bridge.PenColor;

/**

* Created by e550 on 2016/10/3.

*/

public class Black implements Color{

public void bepaint(String penType,String name) {

System.out.println(penType + "黑色的" + name + ".");

}

}

package Bridge.PenColor;

/**

* Created by e550 on 2016/10/3.

*/

public class Blue implements Color{

public void bepaint(String penType,String name) {

System.out.println(penType + "藍(lán)色的" + name + ".");

}

}

4.Pen抽象類實(shí)現(xiàn)

package Bridge.PenColor;

/**

* Created by e550 on 2016/10/3.

*/

public class BigPen extends Pen{

public void draw(String name) {

String penType="大號(hào)毛筆繪制";

this.color.bepaint(penType,name);

}

}

package Bridge.PenColor;

/**

* Created by e550 on 2016/10/3.

*/

public class MiddlePen extends Pen{

public void draw(String name) {

String penType = "中型筆繪制";

this.color.bepaint(penType,name);

}

}

package Bridge.PenColor;

/**

* Created by e550 on 2016/10/3.

*/

public class SmallPen extends Pen{

public void draw(String name) {

String penType = "小型筆繪制";

this.color.bepaint(penType,name);

}

}

5.客戶端

package Bridge.PenColor;

/**

* Created by e550 on 2016/10/3.

*/

public class Client {

public static void main(String args[]) {

Color color;

Pen pen;

color = new Blue();

pen = new BigPen();

pen.setColor(color);

pen.draw("鮮花");

}

}

執(zhí)行結(jié)果

大號(hào)毛筆繪制藍(lán)色的鮮花

總結(jié)

以上是生活随笔為你收集整理的java 桥接模式_JAVA设计模式之【桥接模式】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。