java设计模式--迭代器模式 Iterator,备忘录模式 Memento,中介者模式 Mediator

迭代器模式 Iterator
    JDK 中集合类都有 iterator() 方法,此方法返回一个Iterator 接口的子类,不同的集合对Iterator实现不同。这样对于不同集合就统一定义了访问集合的方法。可以看看源码。


备忘录模式 Memento
    备忘录(Memento)模式又称标记(Token)模式。在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态。缺点是耗费大,如果内部状态很多,再保存一份,无意要浪费大量内存.
    比如:在jsp 中有 scope="request"或 scope="session"特性,在进行验证时把表单的数据copy在相应scope 中,当验证不过时表单数据可以回填。
    
中介者模式 Mediator
    用一个中介对象来封装一系列关于对象交互行为,用来降低类类之间的耦合。对象间的交互依赖彼此对方的行为,修改一个行为可能会涉及到很多其它对象的行为,通过Mediator 模式只关心对象和Mediator 的关系,这样就把多对多的关系修改成了一对多的关系。
    代码模型:
    class Mediator{
        Class1 c1;
        Class2 c2;
    }
    class Class1{
        Mediator m;
    }
    class Class2{
        Mediator m;
    }
    每个成员都必须知道 Mediator,并且和 Mediator 联系,而不是和其他成员联系。Class1 和 Class2 没有直接的关系,通过Mediator相关联。
    MVC中的View Controller 是一种 Mediator,它是 Jsp 和服务器上应用程序间的 Mediator。

你可能感兴趣的:(java设计模式)