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

歡迎訪問 生活随笔!

生活随笔

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

java

adapter java_Java 实现适配器(Adapter)模式

發(fā)布時(shí)間:2024/8/1 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 adapter java_Java 实现适配器(Adapter)模式 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

平時(shí)我們會(huì)常常碰到這種情況,有了兩個(gè)現(xiàn)成的類,它們之間沒有什么聯(lián)系。可是我們?nèi)缃窦认胗卯?dāng)中一個(gè)類的方法。同一時(shí)候也想用另外一個(gè)類的方法。有一個(gè)解決方法是。改動(dòng)它們各自的接口。可是這是我們最不愿意看到的。這個(gè)時(shí)候Adapter模式就會(huì)派上用場(chǎng)了

適配器 模式?有三種方式,一種是對(duì)象適配器,一種是類適配器, 一種是接口適配器

下面舉例說明:

類適配器 類圖

public class DrawRectangle {//畫方

public void drawRectangle(String msg) {

System.out.println("draw Rectangle: " + msg);

}

}

public interface IDrawCircle {//畫圓的接口

void drawCircle();

}

/**

* 類適配器 使用對(duì)象繼承的方式,是靜態(tài)的定義方式

* @author stone

*

*/

public class DrawAdapter4Class extends DrawRectangle implements IDrawCircle {//既能畫方又能畫圓

@Override

public void drawCircle() {

System.out.println("DrawAdapter4Class: drawCircle");

}

}

對(duì)象適配器類圖:

/**

* 對(duì)象適配器: 使用對(duì)象組合的方式,是動(dòng)態(tài)組合的方式。

* 既能畫方又能畫圓

* @author stone

* DrawAdapter是適配器,DrawRectangle屬于adapter,是被適配者,適配器將被適配者和適配目標(biāo)(DrawCircle)進(jìn)行適配

*

*/

public class DrawAdapter4Object implements IDrawCircle {//既能畫方又能畫圓

private DrawRectangle drawRectangle;

public DrawAdapter4Object(DrawRectangle drawRectangle) {

this.drawRectangle = drawRectangle;

}

@Override

public void drawCircle() {

System.out.println("DrawAdapter4Object: drawcircle");

}

public void drawRectangle(String msg) {

drawRectangle.drawRectangle(msg);

}

}

接口適配器

類圖

/*

* 接口適配器:接口中有抽象方法,我們僅僅想實(shí)現(xiàn)當(dāng)中的幾個(gè)。不想所有實(shí)現(xiàn),

* 所以提供一個(gè)默認(rèn)空實(shí)現(xiàn),然后繼承自它,重寫實(shí)現(xiàn)我們想實(shí)現(xiàn)的方法

*/

public interface IDraw {

void drawCircle();

void drawRectangle();

}

/*

* 接口適配器 的默認(rèn)實(shí)現(xiàn)

*/

public class DefaultDrawAdapter implements IDraw {//畫方 畫圓 皆為空實(shí)現(xiàn)

@Override

public void drawCircle() {

}

@Override

public void drawRectangle() {

}

}

public class Test {

public static void main(String[] args) {

//對(duì)象適配器

DrawAdapter4Object objAdapter = new DrawAdapter4Object(new DrawRectangle());

objAdapter.drawCircle();

objAdapter.drawRectangle(" in DrawAdapter4Object");

System.out.println("--------------");

//類適配器

DrawAdapter4Class clzAdapter = new DrawAdapter4Class();

clzAdapter.drawCircle();

clzAdapter.drawRectangle("in DrawAdapter4Class");

System.out.println("--------------");

//接口適配器

MyDrawAdapter myDrawAdapter = new MyDrawAdapter();

myDrawAdapter.drawCircle();

myDrawAdapter.drawRectangle();

}

static class MyDrawAdapter extends DefaultDrawAdapter {

@Override

public void drawCircle() {

System.out.println("drawCircle in MyDrawAdapter");

}

}

}

打印

DrawAdapter4Object: drawcircle

draw Rectangle: in DrawAdapter4Object

--------------

DrawAdapter4Class: drawCircle

draw Rectangle: in DrawAdapter4Class

--------------

drawCircle in MyDrawAdapter

總結(jié)

以上是生活随笔為你收集整理的adapter java_Java 实现适配器(Adapter)模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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