/**
* 外观模式
*/
public class Facade {
private IServiceA serviceA;
private IServiceB serviceB;
private IServiceC serviceC;
public Facade(){
serviceA = new ServiceA();
serviceB = new ServiceB();
serviceC = new ServiceC();
}
public void methodA() {
serviceA.methodA();
serviceB.methodB();
}
public void methodB() {
serviceB.methodB();
serviceC.methodC();
}
public void methodC() {
serviceC.methodC();
serviceA.methodA();
}
}
public interface IServiceA {
void methodA() ;
}
public interface IServiceB {
void methodB();
}
public interface IServiceC {
void methodC();
}
public class ServiceA implements IServiceA {
@Override
public void methodA() {
System.out.println("methodA");
}
}
public class ServiceB implements IServiceB {
@Override
public void methodB() {
System.out.println("methodB");
}
}
public class ServiceC implements IServiceC {
@Override
public void methodC() {
System.out.println("methodC");
}
}
用法:
这个装饰模式所有书上说的都太理论了,学java的肯定都写过SSH这种代码吧,一个service的方法是不是有可能用到了多个dao方法,为什么要这么写呢,组织起来封装一下嘛,这个时候你已经用到了设计模式,只是自己不知道而已,把多个不同的接口功能整合起来变成一个新的接口功能给别人使用,这就是装饰器设计模式的思维了。