工厂(Factory)模式:
静态工厂模式:
明确知道项目具体类型时用这个比较好。
工厂方法模式:
有多个对象类型,而且为了便于以后的扩展,推荐使用这个。
抽象工厂模式:
有多种对象类型,并且这些类型都有类似相同的结构,可以使用这种模式。
代理(Proxy)模式:
隐藏了真实对象,在一个代理类中持有该对象的引用,好处就是便于扩展,降低耦合;同时在调用真实对象的前后还可以做些其他的操作。比如用户身份验证和登录次数统计。
门面(Facade)模式:
该模式提供一个专门的类(门面类)来负责管理一个子系统中的各个对象。客户端只与这个门面类打交道,而不牵扯其他对象。它和中介者模式差不多,区别就在于它是单向的,而中介者模式是双向的。即只在门面类中持有其他对象的引用,其他对象则没有该门面类的引用。
调停者/中介者(Mediator)模式:
从字面上就可以看出它在一个子系统中充当“中介”的作用,而其他的类便是(colleague)所有的操作都是通过这个中介者来进行处理调用。这样其他类便能很好的封装,只提供给外界特有的API即可。和门面模式相比,它是双向的。
观察者(Observer)模式:
一般在写一些跟状态变化有关的处理时,Observer Pattern是一个很好用的工具。该模式是被动的等待Subject目标参与者的“通知”。举个例子就明白了:在MVC中,Model跟view的关系正好与Observer Pattern的Subject参与者和Observer参与者两者的关系相呼应。Model是指操作“不因输出格式而改变的内部模型”的部分,而View则是管理Model“看起来的摸样”的部分。通常1个Model会对应两个以上的View。