接下来我将谈一下关于“设计模式”。这年头,是个程序员,要是不知道“设计模式”,绝对被人鄙视孤陋寡闻。一时间,“设计模式”高手就是编程高手 了。对于一些刚学习编程的人,他们都乐于谈论关于“设计模式”,他们会津津乐道某个设计模式,并为在某些代码上发现了一个“设计模式”的妙用而兴奋。我这 人不怎么喜爱设计模式,因为我懒,要学习设计模式,我还得去学习设计模式的背景,太费脑子了,而且关键是我用不着!当然,我在这里不是要反对“设计模式 ”,我也大体的把设计模式的书粗略过了一下,不过能说上来并应用的也就工厂、适配器、迭代器模式了,更不清楚这么多模式他们之间的各种关联性等等。
我在这里想说的就是,“设计模式”犹如精辟的剑招,每一种模式都能有效“克制敌人的某一个招数”。不过遗憾的是,我们很少遇到只拥有某一中招数的 敌人,我们经常遇到各种各样的敌人,他们使出各种各样的招数,即使我们完全学了所有设计模式,也难以招架。其实,大家在海阔天空谈论设计模式的时候,往往 容易忽略了设计模式的背景。在我看来,设计模式出现的原因是如果开发人员设计的程序比较僵硬,不自然,那么开发和维护就非常痛苦。由此,产生了面向对象的 设计原则。OOP最重要的原则就是SRP,即单一职责原则;其次是OCP原则,即开闭原则。你可以发现,基本上,每一个模式都很符合OOP的这些原则。设 计模式是在面向对象应用上面发展的必然结果,它追求程序变得更加”道法自然“,以避免开发人员受编程之苦。当你从面向对象学习起到开发很多项目之后,你也 会慢慢发现OOP原则和满足这些原则的设计模式的。如果一味的追求设计模式,而少了编程经验,根本无法体会面向对象的精髓,只能是硬着学一些招数而已。
因此,我给高谈“设计模式”的人的建议就是:(1)C#\C++\Java中的每一个关键字你们都掌握了吗? 如果没有的话,赶紧行动,告诉你自己Override、Virtual、Private/Protected/Public...等关键字的意义,当你能 够娴熟使用这些关键字的时候,你算是初步了解了面向对象的基本要素了。(2)对接口的把握程度,”多重继承“是接口最没有意义的用处了,如果你只知道这层 含义,需要多做项目。(3)循序渐进,多做实践。在实践同时,你可以学习设计模式。通过设计模式,你可以给自己制定目标,就是你以后也可以发明类似的设计 模式。(4)道法自然,如果程序设计的看上去很自然,那这些程序就是好程序了。
本文转自道法自然博客园博客,原文链接:http://www.cnblogs.com/baihmpgy/archive/2009/06/28/1512595.html,如需转载请自行联系原作者