Java设计模式汇总,持续更新中

一直想系统的学习设计模式,但是由于各种原因(借口什么的),时间有限,人比较笨,自以为是等等,都没有系统开始。

离找工作还有一年的时间,要在这一年的时间里面完全的靠个人来阅读体会各种设计模式有点困难,更别提为每一篇设计模式都写一篇博客,时间上好像有点困难。

所以将自己学习的各种设计模式的博文、网页等资料汇总在这里,以后有什么新的感想再开新篇好了    ↖(^ω^)↗



1、责任链模式

http://www.cnblogs.com/java-my-life/archive/2012/05/28/2516865.html

这篇博文写的简单易懂,同时结合tomcat的filter来具体讲解,很不错。

2014-09-01

嗯,今天又回想起了chain of responsibility,思路还是很清晰的,哈哈
2014-09-03

2、策略模式

 http://www.cnblogs.com/java-my-life/archive/2012/05/10/2491891.html

又是这位的博文  :-(  真羡慕这些能够把学到的东西讲解得这么透彻的大牛们,大牛这么多,让我们这些小菜鸟怎么活    ~~~~(>_<)~~~~

感觉设计模式什么的,还是要坚持学习,细细体会,毕竟是教我们怎么编程的东西,只有与实际结合才能真正掌握,不然学了就忘,kill me..

 2014-09-02

空想了一下strategy,却怎么也想不出来它的具体内容,悲催,又重新看了一遍:strategy是将一系列的算法的封装到一个共同的接口中,使算法可以相互替代。使得算法在不影响客户端程序的前提下发生改变。  三个角色:context角色(持有对strategy对象的引用,被客户端调用)、strategy角色:抽象策略角色、concretestrategy:具体策略角色。果然,责任道远①,下回应该能回想起来吧。
2014-09-03

3、 简单工厂模式(又:静态工厂模式)


1、核心思想:
有一个专门的类来负责创建实例的过程

2、优点:
简化了客户端逻辑;

3、缺点:
1、工厂类瓶颈:工厂类集中了所有实例的创建逻辑,这就直接导致一旦这个工厂出了问题,所有的客户端都会受到牵连;
2、违背了单一职责:工厂类内部包含了太多的逻辑;
3、最重要的问题:违背了OCP,当产品增加时,需要求改工厂类的逻辑;

4、例子(JDBC):

http://blog.csdn.net/weiwenlongll/article/details/6918164

这篇文章介绍了简单工厂模式,并举了JDBC的例子

http://www.cnblogs.com/java-my-life/archive/2012/03/22/2412308.html

这篇文章,出乎意料的写得有点简陋,本想看看有什么切实的应用场景的,不过语言比较流畅,看起来也不怎么费力

 

4、 工厂方法模式(又:虚拟构造子模式、多态性工厂模式)

http://www.cnblogs.com/java-my-life/archive/2012/03/25/2416227.html

这篇博文写的一般,建议直接看百度百科:http://baike.baidu.com/view/1580263.htm?fr=aladdin

工厂方法模式解决了简单工厂模式不符合OCP的问题

2014-09-03

既然简单工厂模式的客户端对工厂依赖太过了,工厂的逻辑太复杂了,那我多建几个工厂,几个工厂分工总行了吧。新的品种出来了,我建一个新的工厂就好啦,不影响其他的使用,(~ o ~)~zZ

2014-09-05

 

5、 抽象工厂模式

http://www.cnblogs.com/cbf4life/archive/2009/12/23/1630612.html

http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html

老实说,看完上面这仨,我的脑袋快宕机了难过难过难过,这周就到此为止了。下周再开始新的。

回顾回顾,好记性,不如烂笔头,多敲几遍  ↖(^ω^)↗ 

2014-09-03

(⊙o⊙)… 又回顾了一边UML,今天又看了一遍设计模式,困惑感少了很多。

2014-09-05


6、单例模式

心痒痒,又看了一个设计模式,这篇文章写得很好呀!
2014-09-05
讲解了饿汉方式、懒汉方式、双重加锁机制的懒汉方式、lazy init holder方式(利用类级内部类+多线程默认同步锁的有关知识)、枚举方式等
2014-09-15


7、建造者模式

好几天没有更新这篇博客了,因为最近老板逼得紧。。还有一个原因是想要学的建造者模式一直感觉不能理解。
所以先把《大话设计模式》的Builder模式相关章节看了一遍,终于,略有体会
还看了其他一些资料:

2014-09-10
在软件系统中,有时会面临“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成,由于需求的变化,这个复杂对象的 各个部分经常面临着剧烈的变化,但是, 将他们组合在一起的算法却相对稳定
builder:将一个复杂对象的构建与其表现相分离,使得同样的构建过程可以创建不同的表示(GoF)
2014-09-21

8、观察者模式

2014-09-19

9、模板方法模式


模板方法模式是一种简单实用的模式: 在父类中指定处理大纲,在子类中规定具体内容。涉及抽象模板、具体模板两个对象。是基于继承的代码复用的基本技术
模板方法中的方法可以分为两大类:模板方法和基本方法。

  模板方法

  一个模板方法是定义在抽象类中的,把基本操作方法组合在一起形成一个总算法或一个总行为的方法。

  一个抽象类可以有任意多个模板方法,而不限于一个。每一个模板方法都可以调用任意多个具体方法。

  基本方法

  基本方法又可以分为三种:抽象方法(Abstract Method)、具体方法(Concrete Method)和钩子方法(Hook Method)。

  ●  抽象方法:一个抽象方法由抽象类声明,由具体子类实现。在Java语言里抽象方法以abstract关键字标示。

  ●  具体方法:一个具体方法由抽象类声明并实现,而子类并不实现或置换。

  ●  钩子方法:一个钩子方法由抽象类声明并实现,而子类会加以扩展。通常抽象类给出的实现是一个空实现,作为方法的默认实现。






http://www.cnblogs.com/java-my-life/archive/2012/05/14/2495235.html
2014-09-24



未完待续,(⊙o⊙)…
----------------------------------------------------------------------------------------------------


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值