您的位置:首页 > 编程语言 > Java开发

java设计模式系列---23种设计模式概述

2018-03-02 11:06 357 查看

java设计模式系列—23种设计模式概述

一、创建型模式 有五种

单例了模式(Singleton pattern):单例类只能有一个实例,单例类必须自己创建自己的唯一实例,单例类必须给所有其他对象提供这一实例。

工厂模式(factory method pattern):定义了一个创建对象的接口, 但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类。

抽象工厂模式(Abstract factory pattern):为创建一组相关或者是相互依赖的对象提供的一个接口,而不需要指定它们的具体类。

生成器模式(Builder pattern): 使用生成器模式封装一个产品的构造过程,并允许按步骤构造。将一个复杂对象的构建与它的表示分离, 使得同样的构建过程可以创建不同的表示。

原型模式(prototype pattern):当创建给定类的实例过程很昂贵或很复杂时, 就使用原形模式。

二、结构型模式 有七种

适配器模式(Adapter pattern):将一个类的接口转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。对象适配器使用组合,类适配器使用多重继承。

桥接模式(Bridge pattern):桥接模式把事物对象和其具体行为、具体特征分离开来,使它们可以各自独立的变化。又称为柄体(Handle and Body)模式或接口(Interface)模式。

组合模式(composite pattern):允许你将对象组合成树形结构来表现”整体/部分”层次结构。组合模式对单个对象(即叶子对象)和组合对象(即容器对象)的使用具有一致性。组合模式又可以称为整体—部分(Part-Whole)模式,它是一种对象结构型模式。

装饰者模式(decorator pattern):装饰模式又名包装(Wrapper)模式。装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。
就功能而言,修饰模式相比生成子类更为灵活,这样可以给某个对象而不是整个类添加一些功能。

外观模式(facade pattern): 提供了一个统一的接口,用来访问子系统中的一群接口。 外观定义了一个高层接口,让子系统更容易使用。

亨元模式(Flyweight Pattern): 享元模式的主要目的是实现对象的共享,即共享池,当系统中对象多的时候可以减少内存的开销,意图在于运用共享技术有效地支持大量细粒度的对象。
由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式,它是一种对象结构型模式。通常与工厂模式一起使用。

代理模式(Proxy pattern):给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象的访问。

三、行为型模式 有十一种

责任链模式(Chain of responsibility pattern):使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系,将这个对象连成一条链,并沿着个链传递请求,直到有一个对象处理为止。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织链和分配责任。

命令模式(Command pattern):将一个请求封装为一个对象,从而让我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。

解释器模式(Interpreter pattern):定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言”是指使用规定格式和语法的代码。

迭代器模式(iterator pattern): 提供一种方法来访问聚合对象,而不用暴露这个对象的内部表示,其别名为游标(Cursor)。迭代器模式就是顺序访问聚集中的对象,一般来说,集合中非常常见,如果对集合类比较熟悉的话,理解本模式会十分轻松。这句话包含两层意思:一是需要遍历的对象,即聚集对象,二是迭代器对象,用于对聚集对象进行遍历访问。

中介者模式(Mediator pattern) :用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式又称为调停者模式,它是一种对象行为型模式。

备忘录模式(Memento pattern):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。它是一种对象行为型模式,其别名为Token。

观察者模式(observer pattern):观察者模式定义了一种一对多的依赖关系,让多个观者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。

状态模式(State pattern):允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。

策略模式(strategy pattern):定义了算法族,分别封闭起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

模板方法模式(Template pattern):在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下, 重新定义算法中的某些步骤。

访问者模式(visitor pattern): 当你想要为一个对象的组合增加新的能力,且封装并不重要时,就使用访问者模式.

四、设计模式之间的关系

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: