C# 程式設計經典300例 實例094 種植不同種類的水果 外觀模式
實例094介紹外觀模式,我認為外觀模式(Facade pattern)中文翻成門面模式會比較貼切。感覺外觀模式、適配器模式與裝飾者模式這些設計模式分兩階段思考會比較容易理解,第一階段先看原始程式碼,第二階段再看加料改造之後的結果。
實例描述
需要在北京和上海兩地的果園種植三種水果,北京果園種植蘋果和橘子,上海果園種植橘子和香蕉。
輸出「北京果園」、「種植蘋果樹!」、「種植橘子樹!」、「上海果園」、「種植橘子樹!」、「種植香蕉樹!」字串
實現過程
//蘋果類
public class Apple
{
public void PlantApple()
{
Console.WriteLine(“種植蘋果樹”);
}
}
//橘子類
public class Orange
{
public void PlantOrange()
{
Console.WriteLine(“種植橘子樹”);
}
}
//香蕉類
public class Banana
{
public void PlantBanana()
{
Console.WriteLine(“種植香蕉樹”);
}
}
//種植類
public class Plant
{
Apple apple = new Apple();
Orange orange = new Orange();
Banana banana = new Banana();
public void PlantAppleOrange()
{
Console.WriteLine(“北京果園”);
apple.PlantApple();
orange.PlantOrange();
}
public void PlantOrangeBanana()
{
Console.WriteLine(“上海果園”);
orange.PlantOrange();
banana.PlantBanana();
}
}
main函數代碼如下:
Plant plant = new Plant();
plant.PlantAppleOrange();
plant.PlantOrangeBanana();
代碼解析
Plant是外觀模式的外觀類,對三個水果類別進行封裝調用。通過Plant類別實現了調用者與三個水果類的隔離,實現對三個水果類的功能整合。
外觀模式為複雜的系統提供統一的介面,整合複雜的系統功能,並不增加系統的功能,實現調用者與系統之間的鬆耦合關係。
留言
張貼留言