【UML】设计模式与UML

前言

如何成为象棋高手

先来讲一讲如何成为一名象棋高手的步骤,无非就是这么四步:
1.学习棋盘布局、棋子名称等
2.学习规则,棋子的走法
3.研究棋局,探寻方法
4.学习更多的经典的棋局

如何成为软件开发工程师

1.学习算法、数据结构
2.学习编程的方法,例如模块化、面向对象等
3.学习设计模式
4.学习更多的设计模式

其实成为象棋高手和软件开发工程师都是一样的步骤,我们也可以把学习软件开发的东西等价一下,就会发现学习的东西无非不就是那些简单的东西抽象了一下嘛。

什么是设计模式

设计模式是啥,上面讲象棋就讲了,设计模式就是套路。套路是可以反复使用的,那么设计模式也一样,这个在软件开发中的套路可以反复使用,那么它就成了一个设计模式。正经一点,设计模式就是一个方法。

为啥要学这玩意

站在巨人的肩旁上

设计模式与框架

模式:支持软件结构好和设计的重用,单纯适用于代码
框架:支持细节设计好和代码的重用,使用在设计和代码
框架更为细致但是使用单元大,而模式更为抽象使用单元小、范围也更广
但是我们需要做的是将两者结合起来制作质量更高的软件
更具体的分析点这里

  框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。构件通常是代码重用,而设计模式是设计重用,框架则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。
  框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。
  -——- 来自百度百科

不叫你你就别来原则

框架的Hollywood Principle原则
“Don’t call us, we’ll call you.”

分类

设计模式大体分为三类:Creational Patterns, Structural Patterns, Bdhavioral Patterns 但是在这三类之下又有着特别多的小类
这里写图片描述

三个特征

重用、接口与实现分离、松耦合性

要素

名称、动机、约束、上下文、解决方案(结构、参与者、协作、实现)、测评、相关模式

总结

具体的实现还是需要我们深入的去实践,凭空写下来终究是没什么用的。在后面的项目中也会着中的学习设计模式,也需要我们将这些全部都运用到实践当中去。