- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java几种常用设计模式简单示例
模式概述
设计模式可确保通过熟知和公认的解决方案解决常见问题。模式存在的事实基础在 于:大多数问题,可能已经有其他个人或开发小组解决过了。因此,模式提供了一种在开发人员和组织之间共享可使用解决方案的形式。无论这些模式的出处是什 么,这些模式都利用了大家所积累的知识和经验。这可确保更快地开发正确的代码,并降低在设计或实现中出现错误的可能性。此外,设计模式在工程小组成员之间 提供了通用的术语。参加过大型开发项目的人员都知道,使用一组共同的设计术语和准则对成功完成项目来说是至关重要的。最重要的是,如果能正确地使用,设计 模式可以节省您大量的时间。
要想在设计中正确地运用一个设计模式,需要考虑以下条件:
1. 弄清你的问题的本质;
2. 了解这个模式;
3. 理解这个模式如何解决你的问题。
1.单例设计模式
??所谓单例设计模式简单说就是无论程序如何运行,采用单例设计模式的类(Singleton类)永远只会有一个实例化对象产生。
Singleton是一种创建型模式,指某个类采用Singleton模式,则在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点
特点:
无论程序如何运行,该类(Singleton类)永远只会有一个实例化对象产生
在这个类被创建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点
具体实现步骤如下:
?(1) 将采用单例设计模式的类的构造方法私有化(用private修饰)。
?(2) 在该类的内部产生该类的实例化对象,并将其封装成private static类型。
(3) 定义一个静态方法获取该类的实例。
代码示例:
饿汉式:
/**
* 单例模式之饿汉式:----线程安全,效率低
* 特点:在类加载时就已经创建好对象
* @author Darren Ho
*
*/
public class Singleton {
// 将构造方法封装为私有化 ,指明仅在类内部使用
private Singleton () {
}
// 在内部产生本类的实例化对象,将其封装成private static类型
Private static final Singleton instance = new Singleton();
//通过静态方法获取instance对象
public static Singleton getInstance() {
return instance;
}
}
懒汉式:
/**
* 单利模式值懒汉式: 线程不安全,要运用同步锁
* @author Darren Ho
*
*/
public class SingletonLazy {
private SingletonLazy() {
}
private static SingletonLazy instance;
public static SingletonLazy getInstance() {
if (instance == null) {
synchronized (SingletonLazy.class) {
if (instance == null)
instance = new SingletonLazy();
}
}
return instance;
}
}
2.工厂设计模式
程序在接口和子类之间加入了一个过渡端(工厂类),通过此过渡端可以动态取得实现了共同接口的子类实例化对象。
一个对象相关的职责通常有三类:
对象本身所具有的职责、创建对象的职责和使用对象的职责。
对象本身的职责:就是对象自身所具有的一些数据和方法,可通过一些公开的方法来实现它的职责。
对象的创建职责和使用职责(开发中要将两者分开,不能耦合在一个对象中,减少代码的维护工作) -- - - -工厂模式的优点
在所有的工厂模式中,我们都强调一点:两个类A和B之间的关系应该仅仅是A创建B或是A使用B,而不能两种关系都有。
在Java语言中,我们通常有以下几种创建对象的方式:
?????? (1)?使用new关键字直接创建对象;
?????? (2)?通过反射机制创建对象;
?????? (3)?通过clone()方法创建对象;
?????? (4)?通过工厂类创建对象。
工厂模式优点:
将对象的创建和使用分离,也使得系统更加符合“单一职责原则”,也有利于开闭原则,即有利于对功能的复用和系统的维护。
???
将对象的创建和使用分离还有一个好处:防止用来实例化一个类的数据和代码在多个类中到处都是,可以将有关创建的代码搬移到一个工厂类中。
可以引入工厂类来封装对象的创建逻辑和客户代码的实例化/配置选
您可能关注的文档
- LED灯具检测标准要求.doc
- S版三年级上册第一单元试卷(测试题).doc
- photoshop全国信息化计算机应用技术水平教育培训试卷十套选择题包括答案.doc
- CAD工程制图键盘快捷命令大全.doc
- GPRS和CDMA无线自来水管网监测与数据采集系统.doc
- PCR操作步骤和常见问题解决.doc
- ICU医师必读之四——电解质调整.doc
- 健康教育专题讲座-Microsoft-Word-文档.doc
- 企业标准化水平确认.doc
- 北师大版(2019)高中数学选择性必修1第1章2.3 直线与圆的位置关系 课件(共15张ppt).pptx
- 第12课 大一统王朝的巩固 课件(20张ppt).pptx
- 第17课 君主立宪制的英国 课件.pptx
- 第6课 戊戌变法 课件(22张ppt).pptx
- 第三章 物态变化 第2节_熔化和凝固_课件 (共46张ppt) 人教版(2024) 八年级上册.pptx
- 第三章 物态变化 第5节_跨学科实践:探索厨房中的物态变化问题_课件 (共28张ppt) 人教版(2024) 八年级上册.pptx
- 2025年山东省中考英语一轮复习外研版九年级上册.教材核心考点精讲精练(61页,含答案).docx
- 2025年山东省中考英语一轮复习(鲁教版)教材核心讲练六年级上册(24页,含答案).docx
- 第12课近代战争与西方文化的扩张 课件(共48张ppt)1.pptx
- 第11课 西汉建立和“文景之治” 课件(共17张ppt)1.pptx
- 唱歌 跳绳课件(共15张ppt内嵌音频)人音版(简谱)(2024)音乐一年级上册第三单元 快乐的一天1.pptx
最近下载
- (文化产业概论.doc VIP
- 津市市教育局2012年春节团拜会朗诵词.doc VIP
- 护理请示汇报制度.pptx VIP
- 追寻(混声四部合唱)-降B调正谱 钢伴声乐正谱 PDF高清版.pdf
- 化学尖子生培养的几点体会.pptx VIP
- 室内装饰装修工程施工组织设计.doc
- 2024-2030年中国二次元服装行业市场全景调研及未来趋势研判报告.docx
- 第18课 世界主要国家的基层治理与社会保障-高二历史课件(选择性必修1:国家制度与社会治理).pptx VIP
- 绿色施工安全防护措施费用投入计划表GDAQ20109.xls
- 新教材2024版高中历史第六单元基层治理与社会保障第18课世界主要国家的基层治理与社会保障课件部编版选择性必修1.pptx VIP
文档评论(0)