java设计模式(二)

2. 代理模式(Proxy)
适用场景:秀才让小六代其求婚



abstract class QiuHun{
    public abstract void songHua ();
}

class XiuCanQiuHun extends QiuHun {
    @Override
    public void songHua() {
        System.out.println("秀才送花");
    }
}

class Proxy extends QiuHun {
    XiuCaiQiuHun xcqh;
    @Override
    public void songHua () {
        if (xcqh == null) {
            xcqh = new XiuCaiSongHua();
        }
        xcqh.songHua();
    }
}

客户端代码:
Proxy proxy = new Proxy();
proxy.songHua();

上述代理模式为静态代理。静态代理的缺点:如果Subject接口发送变化,那么代理类和具体的目标实现类都要发生变化。动态代理可以解决此问题。
动态代理:Java JDK实现了动态代理,在java.lang.reflect包下,提供了一个Proxy类和一个InvocationHandler接口。

3. 适配器(Adapter)模式
适用场景:

猜你喜欢

转载自doudou-001.iteye.com/blog/2232569