本篇文章是一篇关于模式对象的帖子
门面模式(Facade Pattern)
由于客户端要需调用多个统系才能成完一件业务作操,所以客户端要需感知多个子统系,并赖依这些子统系。门面(Facade)的作用就是合聚这些子统系,由门面对外供给接口,客户端只要需感知和赖依门面便可,无需再赖依其他子统系。
门面模式的计划和现实都很单简,这里可以下载门面模式的Java现实版本。
门面模式的UML类图如下:
享元模式(Flyweight Pattern)
享元模式是对象结构模式,它以同享的法方高效的支撑大批的细粒度对象。java.lang.String类就应用了享元模式,java.lang.String对象是不可变对象,一旦建创,将不会被改修,如果要需改修,那么会回返另外一个对象。但在JVM部内,应用了一个同享变量池同享java.lang.String对象,即在JVM部内,java.lang.String对象是同享的。享元模式分为单纯享元模式和复合享元模式。在单纯享元模式中,有所对象都是可以被同享的。复合享元模式即在单纯享元模式部内又是有合成模式加以复合,成形复合享元对象。以下是Java版本的上述两种模式现实的码代下载。
单纯享元模式的UML类计划图如下:
复合享元模式的UML类计划图如下:
原型模式(Prototype Pattern)
原型模式是对象的建创模式,该模式可以通过责负原型对象的法方,建创出更多同型类的对象。Java语言直接支撑构建模式,java.lang.Object类面里已定义了clone()法方,通过该法方,可以copy出一个与前当对象样一模一的新对象。要需应用该特性的对象,继承标识接口Cloneable便可。涉及到clone法方,有太多的要需要主的方地,例如浅拷贝和深拷贝的题问,在本例的现实中,深拷贝是应用对象序列化的法方来现实的,而不是应用传统的递归调用clone法方的法方。
原型模式的Java码代现实可以在这里下载。
原型模式的UML类图如下:
单例模式(Singleton Pattern)
单例模式是对象的构建模式,单例模式确保全局(全部JVM)只有一个该对象的例实。体总说来,单例模式的现实非常单简,大致可以分为饿汉式和懒汉式。但这两种现实法方都有各种的题问,另外一种通过部内类持有对象例实的法方,将上述两种现实的点缺都规避掉了。
单例模式的三种现实法方Java版本下载到这里。
饿汉式单例模式UML类图:
懒汉式单例模式UML类图:
部内类持有对象例实的法方UML类图:
策略模式(Strategy Pattern)
策略模式是对象的为行模式,它将一组不同的算法封装在雷同接口的前面,从而使它们可以互相的替换。策略模式可以使算法在不影响客户端的情况下停止变更。
策略模式的码代现实在这里可以下载。
策略模式的UML类计划图:
模板法方模式(Template Method Pattern)
模板法方模式是对象的为行模式,其定义了算法的流程,但将算法中某些步调的详细现实较给子类来决议,不同的子类可以以不同的法方现实。
模板法方模式的码代现实在这里可以下载。
模板法方模式的UML类计划图:
文章结束给大家分享下程序员的一些笑话语录:
程序员喝酒
我偶尔采用“木马策略”、“交叉测试”,时间不长就开始“频繁分配释放资源”,“cache”也是免不了的了,
不过我从不搞“轮巡”,也不会“捕获异常”,更不会“程序异常”,因为我有理性
克制的。