最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入理解Java設計模式之外觀模式

 更新時間:2021年11月08日 09:28:58   作者:一指流砂~  
這篇文章主要介紹了JAVA設計模式之外觀模式的的相關資料,文中示例代碼非常詳細,供大家參考和學習,感興趣的朋友可以了解下

一、什么是外觀模式

定義:為子系統(tǒng)中的一組接口提供一個一致的界面,用來訪問子系統(tǒng)中的一群接口。

外觀模式組成:

Facade:負責子系統(tǒng)的的封裝調用

Subsystem Classes:具體的子系統(tǒng),實現(xiàn)由外觀模式Facade對象來調用的具體任務

二、外觀模式的使用場景

1、設計初期階段,應該有意識的將不同層分離,層與層之間建立外觀模式;

2、開發(fā)階段,子系統(tǒng)越來越復雜,增加外觀模式提供一個簡單的調用接口;

3、維護一個大型遺留系統(tǒng)的時候,可能這個系統(tǒng)已經(jīng)非常難以維護和擴展,但又包含非常重要的功能,為其開發(fā)一個外觀類,以便新系統(tǒng)與其交互。

三、外觀模式的優(yōu)缺點

優(yōu)點:

1、實現(xiàn)了子系統(tǒng)與客戶端之間的松耦合關系;
2、客戶端屏蔽了子系統(tǒng)組件,減少了客戶端所需處理的對象數(shù)目,并使得子系統(tǒng)使用起來更加容易。

缺點:

1、不符合開閉原則,如果要修改某一個子系統(tǒng)的功能,通常外觀類也要一起修改;

2、沒有辦法直接阻止外部不通過外觀類訪問子系統(tǒng)的功能,因為子系統(tǒng)類中的功能必須是公開的(根據(jù)需要決定是否使用internal訪問級別可解決這個缺點,但外觀類需要和子系統(tǒng)類在同一個程序集內)。

四、外觀模式的實現(xiàn)

先寫出四個子系統(tǒng)的類

class SubSystemOne
{
    public void MethodOne()
    {
        Console.WriteLine("子系統(tǒng)方法一");
    }
}
class SubSystemTwo
{
    public void MethodTwo()
    {
        Console.WriteLine("子系統(tǒng)方法二");
    }
}
class SubSystemThree
{
    public void MethodThree()
    {
        Console.WriteLine("子系統(tǒng)方法三");
    }
}
class SubSystemFour
{
    public void MethodFour()
    {
        Console.WriteLine("子系統(tǒng)犯法四");
    }
}

引入外觀類,減少子系統(tǒng)類之間的交互

class Facade
{
    SubSystemOne one;
    SubSystemTwo two;
    SubSystemThree three;
    SubSystemFour four;
    public Facade()
    {
        one = new SubSystemOne();
        two = new SubSystemTwo();
        three = new SubSystemThree();
        four = new SubSystemFour();
    }
    public void MethodA()
    {
        Console.WriteLine("\n方法組合A()---");
        one.MethodOne();
        two.MethodTwo();
        four.MethodFour();
    }
    public void MethodB()
    {
        Console.WriteLine("\n方法組B()---");
        two.MethodTwo();
        three.MethodThree();
    }
}

客戶端代碼:

static void Main(string[] args)
{
    Facade facade = new Facade();
    facade.MethodA();
    facade.MethodB();
    Console.Read();
}

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

最新評論

苗栗市| 惠水县| 南乐县| 勐海县| 高雄县| 杂多县| 诏安县| 乌海市| 奉贤区| 上林县| 丘北县| 六盘水市| 舒兰市| 平顺县| 湄潭县| 盐边县| 凤凰县| 丰顺县| 特克斯县| 金山区| 西城区| 桐柏县| 吉林市| 出国| 溆浦县| 鸡泽县| 栖霞市| 永川市| 池州市| 琼结县| 汨罗市| 潢川县| 资阳市| 临颍县| 通河县| 舞阳县| 出国| 周至县| 麻江县| 大竹县| 玛沁县|