外观模式(Facade),也称为门面模式,为系统中一组接口提供一个统一的高层接口,采用子系统更容易使用,外观模式主要解决的问题是:组件的客户和组件中各种复杂子系统有了过多的耦合。
代码实现
Add.java
package com.mobin.facade;
public class Add {
public double add(double n1, double n2) {
return n1 + n2;
}
}
Divide.java
package com.mobin.facade;
public class Divide {
public double divide(double n1, double n2) {
return n1 / n2;
}
}
Multiply.java
package com.mobin.facade;
public class Multiply {
public double multiply(double n1, double n2) {
return n1 * n2;
}
}
Sub.java
package com.mobin.facade;
public class Sub {
public double sub(double n1, double n2) {
return n1 - n2;
}
}
Facade.java
package com.mobin.facade;
public class Facade {
private Add add;
private Divide divide;
private Multiply multiply;
private Sub sub;
public Facade() {
this.add = new Add();
this.divide = new Divide();
this.multiply = new Multiply();
this.sub = new Sub();
}
public double add(double n1, double n2) {
return add.add(n1, n2);
}
public double sub(double n1, double n2) {
return sub.sub(n1, n2);
}
public double divide(double n1, double n2) {
return divide.divide(n1, n2);
}
public double multiply(double n1, double n2) {
return multiply.multiply(n1, n2);
}
}
测试外观模式代码 TestFacade.java
package com.mobin.facade;
public class TestFacade {
public static void main(String[] args) {
Facade facade = new Facade();
double add = facade.add(1, 2);
double sub = facade.sub(2, 1);
double divide = facade.divide(1, 5);
double multiply = facade.multiply(5, 5);
System.out.println(add);
System.out.println(sub);
System.out.println(divide);
System.out.println(multiply);
}
}