什么是模式
@什么是模式
模式这个词汇,在我们软件领域的应用是从其他行业内学过来的,因为软件行业相对于其他行业来说是个年轻的行业,所以也必须向其他行业多多学习和借鉴,然而模式这个词汇就是借鉴之一。
模式是用来记录经验的,并不是某一个人突然发明的,模式只在发现类似的设计方案在很多项目中反复出现之后总结得出的。模式是用来讨论问题和解决方案的,有了模式我们就能出现那种反复出现的内容,以及在特定的上下文中对它的解决方案,并且借助于模式词汇,还能有利于我们和其他人讨论带来方便,那么模式的定义有没有一个标准呢?没有,但是我们要知道所有表象背后的抽象,那就是在一个特定的上下文中反复出现的一个“问题/解决方案”的对子。
@模式的定位
模式的可以有不同抽象层次和该抽象层次的不同分类。
模式该怎么分类呢?我们可以站在不同的抽象层次可以有不同的分类,在高一点就有架构模式,低一点有设计模式,而我们关注的就是我们目前对于我们有益处的模式分类,所以学习模式首先要知道该模式是处于哪一个抽象层次,这样我们才能做到有的放矢,分析的时候,我们有分析模式,设计的时候我们有设计模式,处于中间的,我们有J2EE核心模式,这些都是前辈留给我们的宝贵的经验,我们要好好的利用,所以模式某种意义上来说就是在一个特定的上下文宝贵的经验。
@模式之间的相互支持
简而言之,没有哪个模式是一个孤立的个体。每个模式都只有靠与其他模式相互支持才得以存在于世界之中;每个模式都嵌入到更大的模式里,被同样大小的模式环绕,并且还有更小的模式嵌入在它的内部--这就是所谓“相互支持”的意思。
所以有这样一个前提,我们知道模式之间是相互支持的,没有孤立的模式,我们为了学习,所以把模式单个的拿出来,但是真正使用的时候我们还是会联合其他的模式一起使用的,
所以如果你没有自己的抽象层次来看模式,那么你会觉得昏天暗地,所以明白自己的定位,有的放矢,才便于自己的学习,一把抓,结果什么也抓不到。我们从不同的抽象层次来看模式,是不是可以理解为从不同的侧面或者叫做高度来看模式呢?这和我们的显示生活真的很想象啊,你现在看模式的抽象层次,是这样,在高一层,又会发现该模式构成了更大模式的一个部分,自己的饿视野又有了更新的认知,这难道不是自己的一个循环的过程吗?我们的人生不也是在追寻自己终极的抽象层次吗?
我们讨论模式又不得不在一个特定的层次上去讨论模式,所以我们不要用不同层次的模式相互对话,这就像我们显示生活中,见人说人话,见鬼说鬼话,用他们的语言来说话,然而在不同的层次上,又有每个抽象层次模式之间的关系,导致出现了不同的抽象层次的语言,这一点,我们要学会辨别,例如 J2EE模式框架,所谓框架也就是将模式连接起来,形成一个解决方案以实现一组需求。
@使用模式有什么好处?
1、首先既然模式是经验,那么就让你利用给一个经过验证可行的解决方案。
2、是高手们交流的基础,便于高手之间的沟通
3、模式都有其抽象层次,抽象层次的范围就是一个应用范围,这个范围就是其约束,所以模式约束解决方案的空间。