什么是设计模式?
简单的说,它是一个代码设计经验的一个总结(一种套路),经过反复的使用,被多数人知晓,不断的分类而衍生出来。是为人们解决某类重复出现问题的一套成功或有效的解决方案。
为什么要使用设计模式?
每个模式都描述了我们在编程过程中出现的各种问题,使用设计模式,可以增加代码的可重用性、让代码更容易的被他人理解、保证代码的可靠性。
设计模式使得编程更加工程化,就像建筑中的设计框架一样,它是软件工程的基石脉络。
起源?
哈佛大学的建筑学博士克里斯托弗-亚历山大,是建筑学领域的模式之父。他和他的团队发现人们对舒适住宅和周围环境有一些共同的认同规律,并将他们归纳成为253个模式。对每个模式从前提条件、目标问题、解决方案三个方面进行了描述,并给出了从需求分析到结构设计再到经典实例的过程模型。
GOF(一个四人组)将模式的概念引入软件工程领域,软件模式从此诞生。当然软件模式包含的种类有很多,除了我们现在正在学的设计模式之外,还有架构模式、分析模式、过程模式等等。在软件开发周期的每一个阶段都存在者一些被认同的设计模式 。
分类?
我们先阶段所学的设计模式总共有24个(23个GOF设计模式+1个简单工厂模式),23个GOF设计模式按照他们的用途可以分为创建型、结构型和行为型,下篇将会一一介绍。而简单工厂模式并没有遵循设计模式六大原则中的开放封闭原则,在这里并没有为它分类,而是单拿出来讲解。
创建型:主要描述对象的创建
结构型:设计如何组合类和对象已获得更大的结构,主要采用继承机制来组合接口或实现。
行为型:用来描述类或对象怎样交互以及怎样分配职责,使用继承机制在类间分配行为。
主要分类
ps——简单工厂模式
简单工厂模式的基本思想就是定义一个工厂类,他可以根据参数的不同返回不同类的实例,被创建的实例通常都是具有共同的父类。这样就无需知道创建的细节,降低了代码的耦合。