真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

門面/外觀模式-創(chuàng)新互聯(lián)

一、門面模式 1、定義

門面模式(Facade Pattern)又稱作外觀模式,是指提供一個統(tǒng)一的接口,用來訪問子系統(tǒng)中的一群接口,屬于結(jié)構(gòu)型設(shè)計模式。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供岱山網(wǎng)站建設(shè)、岱山做網(wǎng)站、岱山網(wǎng)站設(shè)計、岱山網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、岱山企業(yè)網(wǎng)站模板建站服務(wù),十年岱山做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

門面模式的主要特征是定義了一個高層接口,讓子系統(tǒng)更容易使用。

2、結(jié)構(gòu)

(1)模式的結(jié)構(gòu)

主要角色如下:

  • 外觀角色(Facade):也叫作門面角色,是系統(tǒng)對外的統(tǒng)一接口。
  • 子系統(tǒng)角色(SubSystem):可以同時有一個或者多個 SubSystem。每一個 SubSystem都不是一個單獨的類,而是一個類的集合。

注意:子系統(tǒng)類中沒有 Facade任何信息,即沒有 Facade對象的引用。對于 SubSystem而言,F(xiàn)acade只是另一個客戶端,處理 Facade指派的任務(wù)。

3、優(yōu)缺點

優(yōu)點:

  • 簡化了調(diào)用過程,不用深入了解子系統(tǒng)。
  • 減少系統(tǒng)依賴,松耦合。
  • 更好的劃分訪問層次,提高安全性。
  • 遵循迪米特法則。

缺點:

  • 當增加子系統(tǒng)和畫展子系統(tǒng)行為時,可能容易帶來未知危險。
  • 不符合開閉原則。
  • 某些情況下,可能違背了單一職責原則。
4、使用場景
  • 為一個復(fù)雜的模塊或者子系統(tǒng)提供一個簡單的供外界訪問的接口。
  • 希望提高子系統(tǒng)的相對獨立性時,可以使用它。
5、在框架源碼中使用
  • Spring源碼中 JDBC模塊下的 JdbcUtils類,它封裝了與 JDBC相關(guān)的所有操作。
  • Mybatis源碼中 Congiguration類,對 JDBC中關(guān)鍵組件的封裝。
二、模式的通用實現(xiàn)

代碼如下:

public class FacadePattern {public static void main(String[] args) {ServiceFacade serviceFacade = new ServiceFacade();
		serviceFacade.doCommon();
	}
}

// 子系統(tǒng)角色
class SubSystemA {public void doA() {System.out.println("doing A");
	}
}

class SubSystemB {public void doB() {System.out.println("doing B");
	}
}

// 外觀角色
class ServiceFacade {private SubSystemA subSystemA;
	private SubSystemB subSystemB;

	public ServiceFacade() {this.subSystemA = new SubSystemA();
		this.subSystemB = new SubSystemB();
	}

	// 對外接口
	public void doCommon() {subSystemA.doA();
		subSystemB.doB();
	}
}
三、模式的應(yīng)用實例

以客戶通過購買基金(門面)從而獲得收益為例?;鸾?jīng)理人操作股票(子系統(tǒng))交易。

(1)股票(子系統(tǒng))

public class Stock1 {private String name = "股票1";

    public void buy(){System.out.println("買進" + name);
    }

    public void sell(){System.out.println("賣出" + name);
    }
}

public class Stock2 {private String name = "股票2";

    public void buy(){System.out.println("買進" + name);
    }

    public void sell(){System.out.println("賣出" + name);
    }
}

(2)基金(門面)

public class FundFacade {private String name = "基金A";

    private Stock1 stock1;
    private Stock2 stock2;

    public FundFacade() {this.stock1 = new Stock1();
        this.stock2 = new Stock2();
    }

    public void buyFund(){System.out.println("買進" + name + ", 基金經(jīng)理買進的股票如下:");
        stock1.buy();
        stock2.buy();
    }

    public void sellFund(){System.out.println("賣出" + name+ ", 基金經(jīng)理賣出的股票如下:");
        stock1.sell();
        stock2.sell();
        System.out.println("收益1W+");
    }
}

(3)測試:小白購買該基金

public static void main(String[] args) {FundFacade fundFacade = new FundFacade();
		fundFacade.buyFund();
		System.out.println("----第N天之后----");
		fundFacade.sellFund();
	}

在這里插入圖片描述

– 求知若饑,虛心若愚。

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


當前文章:門面/外觀模式-創(chuàng)新互聯(lián)
文章URL:http://weahome.cn/article/deocps.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部