AI智能
改变未来

学习C#设计模式(七)外观模式


外观模式

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Facade{//苹果类class Apple{public void PlantApple(){Console.WriteLine(\"种植苹果树\");}}//橘子类class Orange{public void PlantApple(){Console.WriteLine(\"种植橘子树\");}}//香蕉类class Banana{public void PlantApple(){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.PlantApple();//种植橘子树}public void PlantAppleBanana(){Console.WriteLine(\"-----上海果园-----\");apple.PlantApple();//种植苹果树banana.PlantApple();//种植香蕉树}}class Program{static void Main(string[] args){Plant plant = new Plant();//北京果园 种植苹果和橘子plant.PlantAppleOrange();//上海果园种植苹果和橘子plant.PlantAppleBanana();}}}

代码解析:
上述代码实现了外观模式,代码中首先创建了三个水果类Apple、Orange和Banana,然后创建了种植类Plant,该类相当于外观模式中的外观类,该类主要对前面创建的三个水果类进行封装调用,PlantAppleOrange方法封装了Apple类的PlantApple方法和Orange类的PlantOrange方法;而 PlantOrangeBanana 方法则封装了 Orange 类的 PlantOrange 方法和 Banana 类的PlantBanana方法。通过Plant类实现了调用者与三个水果类的隔离,实现了对这三个水果类的功能整合。

说明:
外观模式主要为复杂的系统提供统一的接口,是复杂系统功能的整合,并不增加系统的功能,实现了调用者和系统之间的一种松耦合关系。

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 学习C#设计模式(七)外观模式