设计模式理解

来源:互联网 发布:阿里云安装yum 编辑:程序博客网 时间:2024/05/27 16:43

工厂(Factory)模式:

      静态工厂模式:

            明确知道项目具体类型时用这个比较好。

      工厂方法模式:

             有多个对象类型,而且为了便于以后的扩展,推荐使用这个。

      抽象工厂模式:

             有多种对象类型,并且这些类型都有类似相同的结构,可以使用这种模式。

 

 

代理(Proxy)模式:

      隐藏了真实对象,在一个代理类中持有该对象的引用,好处就是便于扩展,降低耦合;同时在调用真实对象的前后还可以做些其他的操作。比如用户身份验证和登录次数统计。

 

 

 

门面(Facade)模式:

      该模式提供一个专门的类(门面类)来负责管理一个子系统中的各个对象。客户端只与这个门面类打交道,而不牵扯其他对象。它和中介者模式差不多,区别就在于它是单向的,而中介者模式是双向的。即只在门面类中持有其他对象的引用,其他对象则没有该门面类的引用。

 

 

调停者/中介者(Mediator)模式:

      从字面上就可以看出它在一个子系统中充当“中介”的作用,而其他的类便是(colleague)所有的操作都是通过这个中介者来进行处理调用。这样其他类便能很好的封装,只提供给外界特有的API即可。和门面模式相比,它是双向的。

 

 

观察者(Observer)模式:

     

一般在写一些跟状态变化有关的处理时,Observer Pattern是一个很好用的工具。该模式是被动的等待Subject目标参与者的“通知”。举个例子就明白了:在MVC中,Modelview的关系正好与Observer PatternSubject参与者和Observer参与者两者的关系相呼应。Model是指操作“不因输出格式而改变的内部模型”的部分,而View则是管理Model“看起来的摸样”的部分。通常1Model会对应两个以上的View