设计模式概述

一、掌握设计模式的层次(以独孤求败的五种用剑境界作对比)

  第1层:刚开始学编程不久,听说过什么是设计模式(“凌厉刚猛,无坚不摧,弱冠前以之与河朔群雄争锋。”)

  第2层:有很长时间的编程经验,自己写了很多代码,其中用到了设计模式,但是自己却不知道(“紫薇软剑,三十岁前所用,误伤义士不祥,乃弃之深谷。”)

  第3层:学习过了设计模式,发现自己已经在使用了,并且发现了一些新的模式挺好用的(“重剑无锋,大巧不工。四十岁前恃之横行天下。”)

  第4层:阅读了很多别人写的源码和框架,在其中看到别人设计模式,并且能够领会设计模式的精妙和带来的好处(“四十岁後,不滞于物,草木竹石均可为剑。”)

  第5层:代码写着写着,自己都没有意识到使用了设计模式,并且熟练的写了出来(“自此精修,渐进于无剑胜有剑之境。”)

二、设计模式介绍

  设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模式(Design Pattern)代表了最佳的实践。

  这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的

  设计模式的本质提高软件的可维护性,通用性和扩展性,并降低软件的复杂度

  《设计模式》是一本经典的书,作者是 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides Design

  

  设计模式并不拘泥于某种语言,Java,PHP,C++ 都有设计模式

三、设计模式类型

  设计模式从目的来看的话分为三种类型

  创建型模式:这类模式提供创建对象的机制 能够提升已有代码的灵活性和可复用性

  例如:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式

  结构型模式:这类模式介绍如何将对象和类组装成较大的结构 并同时保持结构的灵活和高效

  例如:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式

  行为型模式:这类模式负责对象间的高效沟通和职责委派

  例如:模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式(责任链模式)

  

  从范围(实现手段)来看的话分为两种

  类模式:处理类与子类的静态关系(继承)

  对象模式:处理对象间的动态关系(组合)

   

  注意:不同的书籍上对分类和名称略有差别

原文地址:https://www.cnblogs.com/yijiahao/p/14534419.html