五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Java設(shè)計模式之—外觀模式

2023-08-19 15:48 作者:大大的月亮吖吖  | 我要投稿

外觀模式是一種軟件設(shè)計模式,它為復(fù)雜的子系統(tǒng)提供了一個統(tǒng)一的接口,使得這些子系統(tǒng)更加容易被訪問或使用。它的主要目標是提供一個高層次的接口,隱藏子系統(tǒng)的復(fù)雜性。

主要解決什么問題

外觀模式主要解決的是子系統(tǒng)與客戶端之間的緊耦合問題,使得客戶端可以更簡單地調(diào)用子系統(tǒng)的功能,而不需要關(guān)心子系統(tǒng)內(nèi)部的復(fù)雜實現(xiàn)細節(jié)。

在什么時候我們需要使用外觀模式

當我們要為一個復(fù)雜的子系統(tǒng)提供一個簡單的接口時,或者當我們要解耦子系統(tǒng)與其客戶端之間的關(guān)系時,我們需要使用外觀模式。

生活中的應(yīng)用實例

假設(shè)你到了一個新城市,你可能需要使用各種服務(wù),比如餐飲、住宿、交通等。你可以選擇自己去找各個服務(wù)提供者,這就像直接使用子系統(tǒng)。但如果有一個旅行代理(外觀)提供了所有這些服務(wù)的接入點,你只需要和旅行代理打交道,就可以得到你需要的所有服務(wù),這會使你的生活更加簡單。

優(yōu)點

  1. 對客戶端屏蔽子系統(tǒng)組件,減少了客戶處理的對象數(shù)目并使子系統(tǒng)使用起來更容易。

  2. 實現(xiàn)了子系統(tǒng)與客戶端之間的松耦合關(guān)系。

缺點

  1. 不符合開閉原則,如果業(yè)務(wù)復(fù)雜則會導(dǎo)致類的數(shù)量增多,增加了系統(tǒng)的復(fù)雜性。

  2. 如果不正確或過度使用外觀模式,可能會導(dǎo)致系統(tǒng)的設(shè)計變得復(fù)雜或難以理解。

使用場景

  1. 當需要為一個復(fù)雜的子系統(tǒng)提供一個簡單的接口時。

  2. 客戶端與子系統(tǒng)之間存在很多依賴時。

代碼示例

假設(shè)我們有一個復(fù)雜的電腦系統(tǒng),包括CPU、內(nèi)存和硬盤三個子系統(tǒng)。我們可以創(chuàng)建一個外觀類來簡化與這些子系統(tǒng)的交互。

//子系統(tǒng)

class CPU {

? ? public void start() {

? ? ? ? System.out.println("CPU is start...");

? ? }

}


class Memory {

? ? public void start() {

? ? ? ? System.out.println("Memory is start...");

? ? }

}


class Disk {

? ? public void start() {

? ? ? ? System.out.println("Disk is start...");

? ? }

}


//外觀類

class Computer {

? ? private CPU cpu;

? ? private Memory memory;

? ? private Disk disk;

? ??

? ? public Computer(){

? ? ? ? cpu = new CPU();

? ? ? ? memory = new Memory();

? ? ? ? disk = new Disk();

? ? }

? ??

? ? public void start() {

? ? ? ? System.out.println("Computer start begin");

? ? ? ? cpu.start();

? ? ? ? memory.start();

? ? ? ? disk.start();

? ? ? ? System.out.println("Computer start end");

? ? }

}


//客戶端

public class FacadePatternDemo {

? ? public static void main(String[] args) {

? ? ? ? Computer computer = new Computer();

? ? ? ? computer.start();

? ? }

}

在這個示例中,我們創(chuàng)建了一個Computer類作為外觀,提供了一個start方法,將啟動電腦的復(fù)雜過程封裝起來。客戶端只需要調(diào)用這個方法,就可以啟動電腦,不需要關(guān)心具體的實現(xiàn)細節(jié)。

Java設(shè)計模式之—外觀模式的評論 (共 條)

分享到微博請遵守國家法律
罗源县| 黄平县| 南开区| 萝北县| 南充市| 中西区| 八宿县| 阿克陶县| 徐水县| 兴安盟| 宿迁市| 锡林浩特市| 秦安县| 灵台县| 漾濞| 鱼台县| 宁国市| 彭山县| 邹平县| 赤峰市| 乌拉特前旗| 资阳市| 分宜县| 滕州市| 宜兰市| 新野县| 巴塘县| 通化县| 铜鼓县| 永州市| 晋宁县| 临夏县| 海丰县| 公主岭市| 卓尼县| 庆元县| 清新县| 无锡市| 伊春市| 宜川县| 六枝特区|