文档章节

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_
粉丝 39
博文 387
码字总数 12168
作品 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
Java设计模式学习之工厂模式

在Java(或者叫做面向对象语言)的世界中,工厂模式被广泛应用于项目中,也许你并没有听说过,不过也许你已经在使用了。简单来说,工厂模式的出现源于增加程序序的可扩展性,降低耦合度。之所...

路小磊
07/21
0
10
设计模式 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

HTTPS is easy

HTTPS is easy https://www.troyhunt.com/https-is-easy/ HTTPS is easy! In fact, it's so easy I decided to create 4 short videos around 5 minutes each to show people how to enable ......

openthings
21分钟前
0
0
bugList 2

用户端: 1. 上传文件时,当选择:彩色-A3-双面时,第二个图片有bug 应改为 和第一个图片的类型相同 2. 确认打印时,三个下拉选目前有bug 应改为:根据后台配置的商家,group by计算出不同城...

勇恒
24分钟前
2
0
keras cnn 网咯 mnist 分类

搭建貌似比tf是简单很多。。。。。 from keras.datasets import mnistfrom keras.utils import np_utilsfrom keras.models import Sequentialfrom keras.layers import Dense, Activat......

阿豪boy
26分钟前
0
0
解决 /var/run/nginx.pid failed

nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory) sudo nginx -c /etc/nginx/nginx.conf nginx -s reload...

驛路梨花醉美
28分钟前
0
0
nginx负载均衡-ssl原理-生成ssl密钥对-nginx配置ssl

nginx负载均衡: 1.创建配置文件 vim /usr/local/nginx/conf/vhost/load.conf #添加以下内容: upstream qq_com #名字自定义,借助此模块定义多个IP,后面...

ZHENG-JY
28分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部