文档章节

Java设计模式

Carl_
 Carl_
发布于 2015/06/16 16:47
字数 616
阅读 114
收藏 4

设计模式就是一组成熟的解决方案

  1. 简单工厂模式(SimpleFactory)

    定义:

          提供一个创建对象实例的功能,而无须关系其具体实现.被创建实例的类型可以是接口/抽象类/具体类.

        优点:

            1.帮助封装

                    非常友好的,实现了组件的封装,然后让组件外部能真正面向接口编程.

            2.解耦

                    实现了客户端与具体实现类的解耦.

        缺点:

            1.增加了客户端的复杂度

            2.不方便扩展子工厂

        简单工厂本质就是选择实现.


    2.外观模式(Facade)

        定义:

               为子系统的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易           调用.

        优点:

            1.外观模式松散了客户端与子系统的耦合关系

                    让子系统内部的模块更容易扩展和维护.

            2.简单易用

                    客户端不再需要了解子系统内部的实现,也不需要跟众多子系统内部的模块做交互,只需要跟外观交互                             即可,相当于外观类为外部客户端使用子系统提供了一站式服务.

            3.更好的划分访问的层次

                    把需要暴露给外部的功能几种到外观中,这样既方便客户端使用,也很好的隐藏了内部的细节.

        缺点:

            过多的Facade或者是不太合理的Facade容易让人迷惑,到底是调用Facade好,还是直接调用模块好.

        外观模式本质封装交互、简化调用


        3.适配器模式(Adapter)

            定义:

                    将一个类的接口转换为客户需要的另一个接口.适配器模式使得原本接口不兼容不能在一起工作的那些类可              以一起工作.

            优点:

                1.更好的复用性

                2.更好的可扩展性

            缺点:

                过多的使用适配器,会让系统非常凌乱,不容易整体进行把握.

            适配器本质转换匹配、复用功能


           4.单例模式(Singleton)

              定义:

                      保证一个类仅有一个实例,并提供一个访问它的全局访问点.

               单例模式本质控制实例数目.


            5.工厂方法模式(FactoryMethod)

                定义:

        示例代码:https://git.oschina.net/carlcase/javacase.git

© 著作权归作者所有

共有 人打赏支持
Carl_
粉丝 40
博文 387
码字总数 12168
作品 0
广州
私信 提问
设计模式15——Template Method设计模式

Template Method模板方法设计模式定义一个操作中算法的骨架,将具体步骤的执行延迟到子类中实现。Java中的抽象类就是使用了模板方法设计模式。模板方法设计模式结构如下: 以文档处理为例,T...

小米米儿小
2014/01/24
0
0
设计模式 2014-12-19

book: 阎宏《JAVA与模式》 架构设计栏目 http://blog.csdn.net/enterprise/column.html 概要: http://bbs.csdn.net/forums/Embeddeddriver 23种设计模式分别是: 1.单例模式 2.工厂方法模式...

jayronwang
2014/12/19
0
0
关于spring是用注解好,还是用xml好?

最近学习了一下java的工厂设计模式,感觉工厂模式最大的优点和spring的IOC有些相像,比如我们为一个User接口写了多个实现,记为:UserImpl1、UserImpl2,可以很轻松的来回切换实现,对于工厂...

上帝爱众生
2015/05/19
435
6
为什么java中用枚举实现单例模式会更好

枚举单例是java中使用枚举提供一个实例对象来实现单例模式的一种新方法,虽然单例模式在java中早已存在,但枚举单例实际上从java5引入枚举作为它的关键特性之后相对来说还是一个新的概念,这...

zhoujy
2013/06/01
0
0
从 Java 到 Scala (三): object 的应用

本文由 Captain 发表在 ScalaCool 团队博客。 在上篇 Java 到 Scala 系列中,我想你或多或少在语言特性上对有了一定的掌握,在了解完它酷酷的语言特性——让静态回归常态并能简单运用其衍生出...

ScalaCool
09/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ElasticJob自定义注解注册任务

一,我们需要自定义个注解 @Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)public @interface ElasticSimpleJob { @AliasFor("cron") public abstract Str......

满风
18分钟前
1
0
架构师必备,带你弄清混乱的JAVA日志体系

引言 还在为弄不清 commons-logging-xx.jar 、 log4j-xx.jar 、 sl4j-api-xx.jar 等日志框架之间复杂的关系而感到烦恼吗? 还在为如何统一系统的日志输出而感到不知所措嘛? 您是否依然存在这...

微笑向暖wx
20分钟前
1
0
Excel快速入门教程1-简介

什么是Microsoft Excel? Microsoft Excel是一个电子表格程序,用于记录和分析数值数据。 Excel将电子表格视为列和行表的集合。 字母标签通常分配给列,而数字标签通常分配给行。 列和行相交...

python测试开发人工智能安全
20分钟前
1
0
设计模式

设计模式 菜鸟教程

qwergkp
21分钟前
1
0
只需五分钟-用Maven快速搭建Spring Cloud微服务

Maven安装手册 如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Jav...

编程SHA
25分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部