最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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è)計模式之—外觀模式的評論 (共 條)

分享到微博請遵守國家法律
乌兰察布市| 永和县| 浠水县| 永顺县| 吉木乃县| 仁寿县| 高邑县| 嘉兴市| 资阳市| 泗阳县| 房山区| 青铜峡市| 汝阳县| 巴林左旗| 南丰县| 建湖县| 原平市| 微山县| 洛宁县| 东至县| 西藏| 安义县| 双牌县| 筠连县| 平舆县| 双鸭山市| 萍乡市| 武城县| 朝阳市| 孝义市| 平顺县| 新邵县| 榆树市| 宜兰市| 辛集市| 铜陵市| 荆门市| 富锦市| 高要市| 霞浦县| 墨脱县|