最常用的12种设计模式小结

 更新时间:2011年08月09日 21:31:33   作者:  
最常用的12种设计模式小结,学习js的朋友可以参考下。
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模式.

相关文章

  • JS实现浏览器打印、打印预览示例

    JS实现浏览器打印、打印预览示例

    本篇文章主要介绍了JS实现浏览器打印、打印预览示例。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • JS数组splice操作实例分析

    JS数组splice操作实例分析

    这篇文章主要介绍了JS数组splice操作,结合实例形式分析了javascript使用splice方法删除数组元素相关操作技巧,需要的朋友可以参考下
    2019-10-10
  • webpack4 处理SCSS的方法示例

    webpack4 处理SCSS的方法示例

    这篇文章主要介绍了webpack4处理SCSS的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • 经验几则 推荐

    经验几则 推荐

    [红色]经验几则 推荐...
    2006-09-09
  • javascript 使td内容不换行不撑开

    javascript 使td内容不换行不撑开

    javascript 使td内容不换行不撑开如何实现,本文将详细介绍,需要了解的朋友可以参考下
    2012-11-11
  • JavaScript中创建原子的方法总结

    JavaScript中创建原子的方法总结

    这篇文章主要给大家总结介绍了关于JavaScript中创建原子的方法,文中通过示例代码介绍的非常详细,对大家的学习或工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-08-08
  • Express的路由详解

    Express的路由详解

    这篇文章主要介绍了Express的路由详解的相关资料,需要的朋友可以参考下
    2015-12-12
  • 原生js实现类似fullpage的单页/全屏滚动

    原生js实现类似fullpage的单页/全屏滚动

    这篇文章主要介绍了利用原生js实现类似fullpage的全屏滚动的实现方法,文中给出了完整的实例代码,相信对大家的理解和学习具有一定的参考价值,需要的朋友们可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • JavaScript实现连连看连线算法

    JavaScript实现连连看连线算法

    这篇文章主要为大家详细介绍了JavaScript实现连连看连线算法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • 详解GoJs节点的折叠展开实现

    详解GoJs节点的折叠展开实现

    这篇文章主要为大家介绍了GoJs节点的折叠展开实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05

最新评论