阅读量:0
以下是一个简单的C#实现外观模式的例子。在这个例子中,我们创建了一个简单的计算器程序,其中包含了加、减、乘、除操作。为了简化接口,我们使用外观模式来提供一个统一的接口来执行所有操作。
using System; // 子系统类 public class Adder { public int Add(int a, int b) { return a + b; } } public class Subtractor { public int Subtract(int a, int b) { return a - b; } } public class Multiplier { public int Multiply(int a, int b) { return a * b; } } public class Divider { public int Divide(int a, int b) { if (b == 0) { throw new DivideByZeroException(); } return a / b; } } // 外观类 public class CalculatorFacade { private Adder adder = new Adder(); private Subtractor subtractor = new Subtractor(); private Multiplier multiplier = new Multiplier(); private Divider divider = new Divider(); public int Add(int a, int b) { return adder.Add(a, b); } public int Subtract(int a, int b) { return subtractor.Subtract(a, b); } public int Multiply(int a, int b) { return multiplier.Multiply(a, b); } public int Divide(int a, int b) { return divider.Divide(a, b); } } // 客户端代码 class Program { static void Main(string[] args) { CalculatorFacade calculator = new CalculatorFacade(); int resultAdd = calculator.Add(5, 3); int resultSubtract = calculator.Subtract(5, 3); int resultMultiply = calculator.Multiply(5, 3); int resultDivide = calculator.Divide(5, 3); Console.WriteLine($"Addition: {resultAdd}"); Console.WriteLine($"Subtraction: {resultSubtract}"); Console.WriteLine($"Multiplication: {resultMultiply}"); Console.WriteLine($"Division: {resultDivide}"); } }
在这个例子中,CalculatorFacade
类作为外观模式的实现,为用户提供了一个统一的接口来进行各种数学运算。这样用户只需要与CalculatorFacade
类交互,而不需要直接与各种子系统类交互,从而简化了用户界面。