- 1、本文档共26页,可阅读全部内容。
- 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设计模式详解(附工程代码).pptx
Java 设计模式 创建型设计模式 结构型设计模式 行为型设计模式 概念:只能创建一个类实例的构建对象的方式。 步骤: 1).私有化熟性。 2).私有化构造方法。 3).提供一个返回该类对象的静态方法。 方式:懒汉模式和饿汉模式 提高单例模式的性能和安全问题 public class SingletonHangry { //1.私有化静态熟悉,使得在类加载器在加载该类的时候,这个变量就被实例化 private static SingletonHangry singleTon = new SingletonHangry(); //2.私有化构造方法,是指对外透明,外界就不能通过new关键字创建新对象并为该类的变量赋值 private SingletonHangry(){} //3.提供一个静态方法,为外界调用,以返回一个该类的实例。 public static SingletonHangry getInstence(){ return singleTon; } } 懒汉模式本质就是延迟加载,但是有线程不同步的缺陷 饿汉模式线程安全但是性能较低 线程加锁, if(singleTon == null){ synchronized (Singleton.class) { singleTon = new Singleton(); } } 双重加锁 if(singleTon == null){ synchronized (Singleton.class) { if(singleTon == null){ singleTon = new Singleton(); } } } 使用最简单最快速最安全的方式 private final static SingletonFinal SINGLETON = new SingletonFinal(); 概念:定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中去完成。 具体意义:核心工厂类不再负责产品的创建,而是成为一个抽象工厂角色,它仅负责具体工厂子类必须实现的接口。这样进一步抽象化的好处是使得工厂方法模式可以使系统在不修改具体工厂角色的情况下引进新的产品。 角色: 抽象工厂(Creator)角色:是工厂方法模式的核心,与应用程序无关。任何在模式中创建的对象的工厂类必须实现这个接口。 具体工厂(Concrete Creator)角色:这是实现抽象工厂接口的具体工厂类,包含与应用程序密切相关的逻辑,并且受到应用程序调用以创建产品对象。 抽象产品(Product)角色:工厂方法模式所创建的对象的超类型,也就是产品对象的共同父类或共同拥有的接口。 具体产品(Concrete Product)角色:这个角色实现了抽象产品角色所定义的接口。 类图 感念:简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。 本质:一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。 角色: 工厂(Creator)角色:简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被直接调用,创建所需的产品对象。 抽象产品(Product)角色:简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。 具体产品(Concrete Product)角色:是简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。 缺点:由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中;它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂类了。 工厂方法模式比简单工厂优越,因为他遵循了软件设计的高内聚,模块化责任分配的原则。工厂类不需要改变,如果需要一个新的产品,只需要放入新产品的“原料”(也就是增加一个抽象类的具体实现类,并切增加一个生成该类的工厂),然后就能从具体工厂总拿出新产品,使得软件有很好的可扩充性。 对于简单工厂,如果要新曾一个产品,就要修改工厂类。 概念和意义:抽象工厂是对工厂方法的再次抽象,将对产品的创建升级成对产品类型的创建,那么我们就可以从该模式中获取某一类型的产品,然后从该类型的产品中获取该类型的具体产品,从而实现产品创建的高度抽象。这么以来,我们能从工厂中获取的产品的范围更广。 角色: 抽象工厂:负责产品族的声明,这些产品族由其实现类实现。 抽象产品:目标产品族,由具体工厂实现其要返回的子类的具体类型以此实现产品族的派生功能。 具体工厂:分类实现抽象工厂中声明的产品族产品,一个具体的工厂只生产某个产品族的一个子类型的产品 具体产品:产品的最终目标。由具体工厂以抽象工厂中声明的产品族决定其产品类型。 优点:。。。意
您可能关注的文档
- 商务综合英语Unit 5.ppt
- 地下水动力学 04-第四章 复习思考题参考解答.ppt
- 多媒体评比总结.ppt
- 多维科学选择和使用.ppt
- 3.1 linux文件目录管理.ppt
- 大一机械制图经典复习包含试卷和解答.ppt
- 大一第二学期英语课本后面翻译题解答.ppt
- 国际促销英文版.ppt
- 图形创意表现方法二.ppt
- 大学物理(上)期末试题和解答.ppt
- 2025年辽宁鞍山市铁东区事业单位面向应届生招聘7人笔试模拟试题参考答案详解.docx
- 2017年湖南省怀化市中考数学试题【含答案、解析】.pdf
- ctl pid温控库函数使用说明.pdf
- 第二章磷肥生产分析.ppt
- 水污染控制及管理课件PPT.pptx
- 2025年辽宁鞍山市铁东区事业单位面向应届生招聘7人笔试模拟试题含答案详解.docx
- 2017年湖南省娄底市中考数学试题【含答案、解析】.pdf
- 2025年辽宁鞍山市铁东区事业单位面向应届生招聘7人笔试模拟试题及答案详解1套.docx
- 2017年湖南省益阳市中考数学试题【含答案、解析】.pdf
- 22.威灵仙-玉米套作生态种植技术规范-公示稿.pdf
文档评论(0)