zoukankan      html  css  js  c++  java
  • 设计模式 列表

    我为什么要学习设计模式?

    随便找个招聘网站进去看看,对于程序员这种职位来说,动不动要求几年的工作经验。所以说,程序员的经验是很重要的。

    那设计模式和经验有什么关系? 可以说,设计模式是面向对象程序设计过程中的经验。人们在长期的程序设计中,为了解耦,为了好扩展,为了便于程序的维护等等,总结了各种能适应各种情况的编程经验,后来4人帮对设计模式加以总结和分类,就有了设计模式一说。

    如果没有设计模式,以往我们会把程序设计成模块,要用时就copy-paste,这叫代码复用。现在有了设计模式,我们在设计一个程序时,就可以沿用别人总结的设计模式,这些模式往往是经过一大批程序员、一大批项目进行实际验证,确实能够起到优化代码、使代码便于维护的作用,这叫经验复用。

    设计模式列表

    下面的设计模式列表来源于我阅读的《Head First 设计模式》一书。

    1. 策略模式 (封装可互换的行为,然后采用委托来决定采用哪一个行为)
    2. 观察者模式 (让对象能够在状态改变时被通知)
    3. 装饰者模式 (包装一个对象,以提供新的行为)
    4. 工厂方法模式 (由子类决定要创建具体的类是哪一个)
    5. 抽象工厂模式 (允许客户创建对象的家族,而无需指定他们的具体类)
    6. 单例模式 (确保有且只有一个对象被创建)
    7. 命令模式 (封装请求成为对象)
    8. 适配器模式 (封装对象,以提供不同的接口)
    9. 外观模式 (简化一群类的接口)
    10. 模板方法模式 (由子类决定如何实现一个算法中的步骤)
    11. 迭代器模式 (封装集合,统一集合的访问接口)
    12. 组合模式 (客户可以用一致的方式处理对象集合和单个对象)
    13. 状态模式 (封装了基于状态的行为,并使用委托在行为之中切换)
    14. 代理模式 (包装对象,以控制对此对象的访问)
    15. 复合模式 (多种设计模式的组合)

    《Head First 设计模式》这本书确实不错,内容轻松。而且当时看这本书时总是饿,因为这本书总是讲吃的,动不动就来个披萨!

  • 相关阅读:
    #与javascript:void(0)的区别
    单选框、复选框、下拉列表
    数据类型后的“?”
    c#中日期的处理
    日期控件html
    javascript获取后台传来的json
    Hashtable语法简介
    Hashtable(哈希表)
    Dictionary 字典
    远程SQL Server连接不上
  • 原文地址:https://www.cnblogs.com/smallpi/p/7150327.html
Copyright © 2011-2022 走看看