JAVA171SMART系統系统框架设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA171SMART系統系统框架设计

JAVA171SMART系统-系统框架设计 P3.3.2nbsp;单例模式BR单例模式作为设计模式中的创建模式类型中的一种,从其名字可以看出该模式确保了一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这类称为单例类。单例模式具有以下的特点:BR1.nbsp;单例类只可有一个实例。BR2.nbsp;单例类必须自己创建自己这惟一的实例。BR3.nbsp;单例类必须给所有其他对象提供这一实例。BR在Java中单例模式一般有三种实现其分别为:饿汉式单例类;懒汉式单例类;登记式单例类。BR1.nbsp;饿汉式单例类:BR饿汉式单例类是在Java 语言里实现得最为简便的单例类,下面所示的类图描述了一个饿汉式单例类的典型实现。BRnbsp;BR图2 饿汉式单例类类图BR从类图中可以看出,在这个类被加载时,静态变量m_instance 会被初始化,此时类的私有构造子会被调用。这时候,单例类的惟一实例就被创建出来了。Java 语言中单例类的一个最重要的特点是类的构造子是私有的,从而避免外界利用构造子直接创建出任意多的实例。值得指出的是,由于构造子是私有的,因此,此类不能被继承。BR2.nbsp;懒汉式单例类:BR与饿汉式单例类相同之处是,类的构造子是私有的。与饿汉式单例类不同的是,懒汉式单例类在第一次被引用时将自己实例化。如果加载器是静态的,那么在懒汉式单例类被加载时不会将自己实例化。如图3所示,类图中给出了一个典型的懒汉式单例类实现。BRnbsp;BR图3懒汉式单例类类图/P P3.nbsp;登记式单例类:BR登记式单例类是GoF为了克服饿汉式单例类及懒汉式单例类均不可继承的缺点而设计的。在本例中把他们的例子翻译为Java 语言,并将它自己实例化的方式从懒汉式改为饿汉式。只是它的子类实例化的方式只能是懒汉式的,这是无法改变的。如图4所示是登记式单例类的一个例子,图中的关系线表明,此类已将自己实例化。BRnbsp;BR图 4登记式单例类BR3.3.3nbsp;IoC模式BRIoC (Inversion of Control)模式又称DI(依赖注入),从GoF设计模式中,我们已经习惯一种思维编程方式:Interface Driven Design 接口驱动,接口驱动有很多好处,可以提供不同灵活的子类实现,增加代码稳定和健壮性等等,但是接口一定是需要实现的,也就是如下语句迟早要执行:BR  AInterface a = new AInterfaceImp(); BRAInterfaceImp是接口AInterface的一个子类,IoC模式可以延缓接口的实现,根据需要实现,打个比喻:接口如同空的模型套,在必要时,需要向模型套注射石膏,这样才能成为一个模型实体,因此,将人为控制接口的实现成为“注射”。BR其实IoC模式也是解决调用者和被调用者之间的一种关系,上述AInterface实现语句表明当前是在调用被调用者AInterfaceImp,由于被调用者名称写入了调用者的代码中,这产生了一个接口实现的原罪:彼此联系,调用者和被调用者有紧密联系,在UML中是用依赖 Dependency 表示。BR但是这种依赖在分离关注的思维下是不可忍耐的,必须切割,实现调用者和被调用者解耦,新的IoC模式 Dependency Injection 模式由此产生了, Dependency Injection模式是依赖注射的意思,也就是将依赖先剥离,然后在适当时候再注射进入。BR3.3.4nbsp;JAVA反射机制BR“反射”是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。Java 的反射机制是使其具有动态特性的非常关键的一种机制,这个机制允许程序在运行时透过Reflection APIs取得任何一个已知名称的class的内部信息,包括其modifiers(诸如public, static 等等)、superclass(例如Object)、实现之interfaces(例如Cloneable),也包括fields和methods的所有信息,并可于运行时改变fields内容或唤起methods。BR3.3.5nbsp;JSP自定义标签BR要在JSP中实现自定义标签,那么要求必须实现一个相应的标签处理类及写该标签的TLD文件,在JSP中一个自定义的action也就是对tag处理类,是基于一个bean类型的类,该类里面伴随的getter/setter方法对应于tag中的属性。另外这个tagnbsp; handler类还必须要实现JSP规范中与tag相关的三个接口中的一个。这三个接口如下所示:BR1.nbsp;TagBR2.nbsp;It

文档评论(0)

sd47f8cI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档