学习《设计模式(Java版)》——设计模式的10个要素20200912

为什么写博客呢? 是因为知道一个道理“输出可以倒逼输入”。具体是想要通过这种方式逼自己将设计模式完完整整的学一遍,而不是半途而废。因为在网上写博客即使没人看,

为什么写博客呢?

是因为知道一个道理“输出可以倒逼输入”。具体是想要通过这种方式逼自己将设计模式完完整整的学一遍,而不是半途而废。因为在网上写博客即使没人看,自己也会觉得有大家在看着自己的所作所为,所以,这将成为我咬牙学完设计模式的动力。

当然写博客逼自己学完设计模式这只是其一,在写博客的过程中也可以检验自己学习设计模式的效果,换句话说就是将写博客当作是对自己学习设计模式的一种考试这是其二。

其三是当自己写了博客,自己在简历上可以光明正大的写上,写了XXX篇博客文章,增加自己的价值。

 

下面不多废话,进入文章的主题说说设计模式的10个要素

为什么要先说设计模式的10个要素,而不是直接说设计模式或者说设计模式的原则呢?

因为我认为设计模式的10个要素,这是后续学习设计模式的「把手」。什么意思,就是你学习每一个设计模式都需要将这10个要素都关注一遍。换句话说就是这设计模式的10个要素就是学习设计模式的方法。

 

设计模式的10个要素有哪些呢?

1.模式名称——设计模式的名称简洁地描述了设计模式的问题、解决方案和效果;

2.问题——应该在何时使用模式;

3.环境或初始环境——模式的使用范围;

4.解决方案——设计的组成成分,他们之间的相互关系及各自的职责和协作方式;

5.效果——模式应用的效果及使用模式应权衡的问题;

6.举例——模式是如何应用到环境中、改变环境并且给出当模式结束时的末态环境;

7.末态环境——模式应用到系统之后的状态;

8.推理——推理解释本模式的步骤、规则,以及此模式作为一个整体是如何以特定的方式解决模式的;

9.其他有关模式——现有系统中此模式与其他模式的静态和动态关系;

10.已知的应用——在已有的系统模式中出现和应用的例子。

 

是不是看到这些话有些头疼,那么我先用自己的话来逐个解释一下。

1.模式名称——设计模式的名字,最好的名字是可以从中读出,解决的问题;

2.问题——设计模式应该什么时候用;

3.环境或初始环境——设计模式的使用前提条件是什么;

4.解决方案——设计模式是如何解决问题的;

5.效果——设计模式使用之后会带来什么效果;

6.举例——设计模式是如何应用的;

7.末态环境——设计模式使用之后会怎么样;

8.推理——设计模式是如何工作的;

9.其他有关模式——设计模式和其他模式的关联关系有哪些;

10.已知的应用——设计模式在现有系统应用的例子。

虽然进行逐个解释,但发现看着这么多要素有些招架不住,我觉得需要对这10个要素进行归纳总结,毕竟记住是灵活使用的第一步。

 

对于10个要素我认为可以分为四类:名字,使用,原理,例子。这其实也是学习一个新东西的过程。

名字——对应的是第1点;

使用——对应的是第2,3,5,7点;

原理——对应的是第4,8,9点;

例子——对应的是第6,10点。

 

这些是我对于设计模式种关于设计模式的10个要素的学习笔记。