在谈及设计模式前,我们必须得明白设计模式的意义。因为我也是刚刚开始学习设计模式,所以我准备将自己所学一点点记下来。
首先第一点设计
设计分为三点:1.概要设计,2结构设计,3详细设计
而设计模式则是运用在“详细设计”的东西。
其次什么是设计模式?
设计模式就是,就是人们在特定的情况下遇到特定类型的问题,而采用他人使用过的一套固定的解决方法,一套解题套路。
举个简单的例子,初中我们经常会做应用题,而很多应用题其实都是用方程来解的。当然也可以不用方程来解,但是不用方程你会发现解题过程会变得非常的复杂,并且比较难理解。那么其实方程就是一个模式,它就是一个固定的套路。现在回想一下遇到一道应用题,想了一下,发现这道题用方程来解最简单。然后第一步,设未知数,第二步,根据逻辑列方程,第三步,解方程,这就是一个模式。同样,遇到一道应用题,想了一下,发现这道题老师讲过,用画图法来做来解题,最容易想,也最容易解开,那么以后你遇到类似的题都知道用画图法来解开。那么这个画图法就是一个模式。
所以,设计模式就是,遇到一些比较经典的程序上的问题,或者经常遇到的设计上的问题,有一套固定的设计方式,来使这个程序问题快速并较完美的解决
GOF设计模式是最经典的设计模式
gof设计模式有23种,这23种设计模式,这23种设计模式能解决很多关于程序设计上的问题。并且这23种设计模式都是针对的是面向对象的语言的设计模式。
设计模式不受语言的限制
一个好的设计模式是不受语言的限制的,我们学设计模式,是要学会设计模式的思想,而不是死板的记住一种语言的设计模式。也就是说,设计模式,我们学完后。我们可以用java写,也可以用c#等其他语言写
设计模式的基本四要素
1.模式名称
2.问题(描述了应该在何时使用模式,它包含了设计中存在的问题以及问题存在的原因)
3.解决方案
4.效果
设计模式的分类
根据目的分为:
创造型模式(主要用于创建对象)
结构型模式(主要用于处理类或对象的组合)
行为型模式(主要用于描述类或对象怎样交互和怎样分配职责)
根据范围分类:
类模式(处理类和子类之间的关系。这种关系通过继承建立,在编译时被确定下来,是一种静态关系)
对象模式(处理对象间的关系,这些关系在运行时变化,更具动态性)
好的设计模式要符合面向对象设计原则
关于面向对象的设计原则下期我会详细写,这里提一点大概就是“高内聚,低耦合”