文档章节

Java设计模式

Carl_
 Carl_
发布于 2015/06/16 16:47
字数 616
阅读 113
收藏 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
广州
从 Java 到 Scala (三): object 的应用

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

ScalaCool
09/10
0
0
20个设计模式和软件设计面试问题

不管是参加Java面试还是C#面试,设计模式和软件设计都是任何编程面试中的必问问题。实际上,编程能力和设计技巧是对彼此很好的补充。一个好的程序员通常都是一个好的软件设计人员。他们知道怎...

LCZ777
2014/08/13
0
0
设计模式3——Proxy设计模式

Proxy代理设计模式是一种控制对象访问的设计模式,类似于网络代理,网络代理机制如下图: Proxy代理设计模式机制如下: 代理模式UML图如下: 代理模式顺序图如下: 客户端程序通过代理程序来...

小米米儿小
2013/12/06
0
0
设计模式15——Template Method设计模式

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

小米米儿小
2014/01/24
0
0
练就Java24章真经—你所不知道的工厂方法

前言 最近一直在Java方向奋斗《终于,我还是下决心学Java后台了》,今天抽空开始学习Java的设计模式了 。计划有时间就去学习,你这么有时间,还不来一起上车吗? 之所以要学习Java模式,是因...

codeGoogle
09/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Mac OS 最强鼠标改键软件:BetterAndBetter

官网: http://www.better365.cn 话不多说,先上你们最喜欢的软件界面截图。 通用: 触摸板: 鼠标: 键盘: 情景模式: 文本跳窗(自动跳窗): 四角触发: 工具箱: 脚本: 关于: 说下我目...

故国有明
39分钟前
16
0
Hbase Schema 模型设计注意事项及示例

一、Hbase 数据模型概述 HBase的数据模型也是由表组成,每一张表里也有数据行和列,但是在HBase数据库中的行和列又和关系型数据库的稍有不同。 表(Table): HBase会将数据组织成一张表,表名必...

PeakFang-BOK
今天
6
0
Blockathon(2018)上海竞赛项目成果今天揭晓

开幕式现场 10月19日,Blockathon(2018)上海在黄浦区P2联合创业办公社举行,本次活动由50名区块链开发者组成9支参赛队伍,来自国内外优秀区块链开发团队的20名技术专家担任导师及裁判。9支队...

HiBlock
今天
6
0
微信小程序开发系列六:微信框架API的调用

微信小程序开发系列教程 微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信小程序开发系列二:微信小程序的视图设计 微信小程序开发系列三:微信小程序的调试方法 微信小程序开发...

JerryWang_SAP
今天
12
0
5 个用 Python 编写 web 爬虫的方法

大家在读爬虫系列的帖子时常常问我怎样写出不阻塞的爬虫,这很难,但可行。通过实现一些小策略可以让你的网页爬虫活得更久。那么今天我就将和大家讨论这方面的话题。 我刚整理了一套2018最新...

糖宝lsh
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部