文末有福利!!!!!
为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
package com.lyz.design.facade;
/**
* Facade
* @author binghe
*
*/
public class Facade {
ServiceA sa;
ServiceB sb;
ServiceC sc;
public Facade() {
sa = new ServiceAImpl();
sb = new ServiceBImpl();
sc = new ServiceCImpl();
}
public void methodA() {
sa.methodA();
sb.methodB();
}
public void methodB() {
sb.methodB();
sc.methodC();
}
public void methodC() {
sc.methodC();
sa.methodA();
}
}
package com.lyz.design.facade;
/**
* Subsystemclasses
* @author binghe
*
*/
public class ServiceAImpl implements ServiceA {
public void methodA() {
System.out.println("这是服务A");
}
}
服务B
package com.lyz.design.facade;
/**
* Subsystemclasses
* @author binghe
*
*/
public class ServiceBImpl implements ServiceB {
public void methodB() {
System.out.println("这是服务B");
}
}
服务C
package com.lyz.design.facade;
/**
* Subsystemclasses
* @author binghe
*
*/
public class ServiceCImpl implements ServiceC {
public void methodC() {
System.out.println("这是服务C");
}
}
package com.lyz.design.facade;
/**
* Test
* @author binghe
*
*/
public class Test {
public static void main(String[] args) {
ServiceA sa = new ServiceAImpl();
ServiceB sb = new ServiceBImpl();
sa.methodA();
sb.methodB();
System.out.println("========");
//facade
Facade facade = new Facade();
facade.methodA();
facade.methodB();
}
}
这是服务A
这是服务B
========
这是服务A
这是服务B
这是服务B
这是服务C