浅谈设计模式

以往的OO特性,封装、继承、多态C语言中的模块化编程,都强调的是代码的复用。但是设计模式比这高明一些,他强调的是经验的复用。他们都是以往程序员对编程的理解精华。我们学习设计模式,可以说是让我们能够站在巨人的肩膀上编程,设计模式不是发明出来的,是被聪明的人们发现的,这个我也有自己的理解。比如说,在我以前写C++代码,做界面的时候,要做一个交互的界面,一般都需要做一些按钮、文本框之类的组件,我之前没用用MFC,是根据一个图形库自己做的,只有一个windows消息的机制。当时自己通过消息机制做出来了一个按钮的效果,一点击就能触发事件。当时还是比较有成就感的,认为自己能够发明车轮了。但是也有一些问题。就是每当我要添加一个按钮或者修改一个按钮的时候,都十分的不方便,要改很多的代码。在我后面学设计模式的时候,发现JDK中也有很多的事件处理机制,他们用的是观察者模式,我们现在都知道,在java swing编程的时候,我们只需要将组建add到容器中,做一个事件监听的注册,步骤十分的加简单,相对于我编写的代码,他的维护性和扩展性都更好,这样的代码才是更有弹性、更符合设计的,这个是设计模式的一大好处。

另外设计模式还有一个好处就是他构造了一些程序员们才懂得的名词,这就使得那些懂得设计模式的程序员沟通起来更加的方便。人们要把自己的思想全部表达出来并没有那么容易的,毕竟还需要经过将思想转化为语言在转化为思想这么一个过程,这其中有那个环节出现了纰漏,最后得到的结果可能也和原先的不一样了。如果我们将好的编程思路封装成一个个的名词,这样不但省去了我们的沟通成本,也让程序员之间的交流更加的可靠,如同一个老厨师的“加盐少许”。比如在JDK的java.io包中,有很多的类,初学者面对这么庞大的类库是十分头疼的,但是如果你知道装饰者模式,知道io的UML,学习io包中的哪些类就会轻松很多,会有一种顿悟的感觉。

你可能感兴趣的:(思想)