ARTS第6周T:设计模式——外观模式(Facade模式)

下面是一个基于Java语言的Facade模式示例:

java

// 这个接口是客户端所看到的,也就是外观  
public interface ICalculator {  
    int add(int a, int b);  
    int subtract(int a, int b);  
}  
  
// 这个类实现了上面的接口,也就是具体子系统的一部分  
public class Calculator : ICalculator {  
    public int add(int a, int b) {  
        return a + b;  
    }  
    public int subtract(int a, int b) {  
        return a - b;  
    }  
}  
  
// 这个类是真正的Facade,他实现了和上面接口一样的接口,但是内部却委派给了具体的子系统组件  
public class CalculatorFacade : ICalculator {  
    private ICalculator calculator;  
    public CalculatorFacade(ICalculator calculator) {  
        this.calculator = calculator;  
    }  
    public int add(int a, int b) {  
        return calculator.add(a, b);  
    }  
    public int subtract(int a, int b) {  
        return calculator.subtract(a, b);  
    }  
}


在这个例子中,Calculator就是具体子系统的一部分,而CalculatorFacade则是外观,它实现了相同的接口,但内部委派给了Calculator。通过这种方式,我们隐藏了子系统的复杂性,使得客户端只需要和简单的接口进行交互,而无需关心具体的实现细节。

你可能感兴趣的:(2023ARTS打卡,java,数据结构,arts挑战)