现在的位置: 首页 > 综合 > 正文

设计模式

2013年08月10日 ⁄ 综合 ⁄ 共 1431字 ⁄ 字号 评论关闭

                                       设计模式

什么是设计模式?

         开始学习设计模式已经一周多了,到现在才想起来似乎忘了些东西.到底什么设计模式,设计模式是来干嘛的呢?

         专业说法是设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。通俗的说模式就是解决某一类问题的方法。把解决某类问题的方法总结归纳到理论高度,那就是模式。设计模式就是软件设计过程种遇到某种特定的情况使用的特定的解决方法.经过无数前辈的努力将这些特定情况下使用的特定的解决方法总结归纳起来便有了设计模式.   

 

为什么我们要使用设计模式?  

          其实往往事实是这些特定的情况都能以一种非设计模式的普通的解决方法来解决,但是为什么我们还要学习和使用设计模式呢?

           众所周知构建一个优秀的系统最困难之处不在于编码,而是在早期做出的设计上的决定。设计是软件开发生命周期中的关键阶段,好的设计能产生好的产品,而不当的设计则会影响最终产品的质量。设计模式是拥有多年开发设计经验的人给我们的经验传承,它是作为专家的建议而引入的。如果我们没有足够的经验,我们很难做出好的设计,富有经验的开发者和设计者以设计模式的形式将他们的经验传授给我们,拥有了这些经验之后,我们也能做出好的设计来了。所以如果想在这条路上走的更好,行的更远,设计模式是必不可少的.

 

那么都有哪些设计模式呢?

如图常用的GOF设计模式一共是三类,总共23个设计模式

根据目的准则分类:

1.创建型:creational 与对象的创建有关。

2.结构型:Structural 处理类或对象之间的组合。

3.行为型:behavioral 描述类或对象如何交互及如何分配职责。

 

什么情况下使用设计模式呢?

      当你的项目发现有如下问题之一时,就需要考虑重构代码,可能会有某种模式适合。

(1)代码无法进行单元测试时;

(2)需求的变动总是导致代码的变动;

(3)由重复代码存在;

(4)继承层次过多;

(5)隐藏的依赖过多;

 

设计模式不是万能的

        设计模式有很多的优点,但是设计模式不是万能的,同样也有很多的缺点.

        首先模式的使用是有前提和代价的,模式是在某种前提下,综合各方面的因素考虑得出的结果。即在使用模式时总要付出一定的代价的,当然这种代价是可以接受的。。模式实际上是某种语境下的解决方案。在实际的项目中,是否采用模式取决于项目是否符合模式的语境,并且是否可以接受使用模式多带来的代价。很多情况下,模式的选择不是必然的。有时可以不采用模式也可以很好地解决问题:有时可以采用一种模式代替另一种模式,或者说在特定的语境下模式的使用不是唯一的。

         其次很多情况下会降低开发速度,即使是使用正确的设计模式。这是因为设计模式可能会引入更多的对象和更复杂的对象装配关系,从而使得程序有更多的动态,从局部看来变得结构复杂,难以理解并且测试困难。 然而,如果从整个项目和生命周期来看,合理地使用设计模式可以使程序结构更为健壮,更具有可维护性。

        最后我们用设计模式是为了设计,而不是为了使用设计模式而研究设计模式.设计模式不应该太强势的使用,往往很多情况下不使用设计模式是因为不需要,问题还没有复杂到非要用设计模式的地步

抱歉!评论已关闭.