常用设计模式

1.策略模式(Strategy): 定义了算法家族, 分别封装起来, 让它们之间可以互相替换.

比如Collections.sort(List list, Comparator c); 可以通过实现多个Comparator接口来达到多种排序的目的.

2.装饰着模式(Decorator): 动态的给一个对象添加一些额外的职责.

比如java.io包. BufferedInputStream封装了FileInputStream, 它们都实现了InputStream接口, 但前者实现了readLine方法.

3.代理模式(Proxy): 为其他对象提供一种代理以控制对这个对象的访问.

比如在用户登录时, 真正的登录类和代理登录类都实现了Login接口, 不同的是Proxy类的方法中增加了用户是否合法的判断, 只有合法时才去调用真正登录类的login方法. 用户访问的其实是Proxy的login方法.

4.工厂模式(Factory): 定义一个用以创建对象的接口, 让子类决定实例化哪个类.

当遇到需要根据某个前提条件创建不同的类实现时, 会实用工厂模式.

5.模板模式(Template): 定义一个操作中的算法骨架, 而将一些步骤延迟到子类中.

比如HibernateTemplate, 在Template中已经定义了Connection开关的实现, 用户只需要在子类中根据不同的业务写不同的sql.

6.外观模式(Facade): 为子系统中的一组接口提供一个一致的界面.

一直在用, 比如DBUtil, 将所有数据库对象封装了, 只留了DBUtil.getDBUtil()这个接口.

7.建造者模式(Builder): 将一个复杂对象的构建与它的表示分离.

8.观察者模式(Observer): 定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象,在它的状态发生变化时,会通知所有的观察者.

比如ServletContextListener, 在applcation启动时, 会通知所有这个接口的实现类.

9.抽象工厂模式(Abstract Factory): 提供一个创建一系列相关或相互依赖对象的接口, 而无需指定它们具体的类.

10.适配器模式(Adapter): 将一个类的接口转换成客户希望的另一个接口.

11.单例模式(Singleton): 保证一个类仅有一个实例,并提供一个访问它的全局控制点.

比如在加载配置文件时, 可使用该模式.

12.命令模式(Command): 将一个请求封装成为一个对象,  使可以用不同的请求对客户进行参数化.

比如Struts的MVC结构, 其实就是个Command模式.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 由于项目变更的频繁性,作为一名程序员,我们需要掌握设计模式的必要性,就不言而喻~~,下面就是一些我自己学习的设计模...
    Venus_明阅读 13,988评论 0 64
  • 原以为自己已经比较了解设计模式了,谁知面试官一问,我竟然紧张到只记得单例模式。。。囧,So 有了这篇文章 策略模式...
    __huazhou阅读 35,754评论 3 32
  • 前言 很久前就一直想总结下常用的设计模式,但是各种原因一直拖到现在,下面我尝试用自己的理解去解释常用的设计模式,旨...
    老实任阅读 677评论 0 1
  • Java开发中的23种设计模式详解(转) - maowang - 博客园 一、总体来说设计模式分为三大类: 创建型...
    Kevin_Curry阅读 824评论 1 7
  • 每天早晨第一件事儿就是习惯性地用手满床划拉手机,今天第一眼看到的就是家人群里发的这张温暖的小纸条照片…… 这是已近...
    黑龙江冷月阅读 776评论 3 1