zoukankan      html  css  js  c++  java
  • 模式对象设计模式Java实现(三)Strut2教程java教程

    本篇文章是一篇关于模式对象的帖子

        门面模式(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”也是免不了的了,
      不过我从不搞“轮巡”,也不会“捕获异常”,更不会“程序异常”,因为我有理性
    克制的。  

  • 相关阅读:
    bash 中 () {} [] [[]] (()) 的解释
    正则表达式速查笔记
    Makefile速查笔记
    gflags 编译动态库
    在Win10上运行ESXI-Comstomer
    GNU g++常用编译选项用法
    C++标准转换运算符reinterpret_cast
    BZOJ 3211: 花神游历各国【线段树区间开方问题】
    BZOJ 1597: [Usaco2008 Mar]土地购买【斜率优化+凸包维护】
    BZOJ 1046: [HAOI2007]上升序列【贪心+二分状态+dp+递归】
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3053878.html
Copyright © 2011-2022 走看看