IT职场的小菜经常有这样的疑问:
为什么一个相似的功能,大牛一会儿就搞定,然后悠闲地品着下午茶逛淘宝;而自己加班加点搞到天亮还做不完。
为什么用户提出需求变更后,大牛只需潇洒地敲敲键盘,改改配置;而自己将代码改了又改,删了又建,几乎晕厥,最后只能推翻重来。
为什么大牛写完的程序测试上线后,几乎完美运行,用户无懈可击;而自己的程序bug重重,改好一个却又引出另一个,按下葫芦浮起瓢,几近崩溃。
为什么同样是程序员,大牛工资1W,而自己只能拿区区的3K?
大牛显然知道一些小菜所不知道的秘密,这秘密又是什么呢?
这个秘密就是设计模式。设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。只有精通了设计模式,才敢说真正理解了软件工程。可以说,设计模式是每一个架构师所必备的技能之一。作为一个面向对象设计程序员,只有精通了设计模式,才能完成自身价值从3K到1W的飞跃,才能摆脱码奴的命运,成为一个真正的软件工程师。
提到设计模式,不得不感谢GoF(Gang of Four,四人组),他们1995年出版的《设计模式》一书,第一次将设计模式提升到理论高度,并将之规范化。书中一共总结了23种基本的设计模式。而这23中设计模式几乎涵盖了面向对象设计过程中所有问题的解决方案。书中提到的23种设计模式分别是:
1.单例模式 2.工厂方法模式 3.抽象工厂模式 4.模版方法模式 5.建造者模式 6.代理模式 7.原型模式 8.中介者模式
9.命令模式 10.责任链模式 11.装饰模式 12.策略模式 13.适配器模式 14.迭代器模式 15.组合模式 16.观察者模式
17.门面模式 18.备忘录模式 19.访问者模式 20.状态模式 21.解释器模式 22.享元模式 23.桥梁模式
那么如此多的设计模式又是从何而来呢?《易经》有云:“易有太极,是生两仪,两仪生四象,四象生八卦”,意思就是说世界万物皆有起源。而设计模式的起源是面向对象程序设计思想,是面向对象设计的精髓——抽象。面向对象通过类和对象来实现抽象,实现时产生了面向对象的三个重要机制:封装、继承、多态。正是这三个机制衍生出了各种各样的设计模式。在面向对象软件设计的发展过程中,除了《设计模式》一书中提到的23中设计模式之外,新的设计模式仍然不断出现。
从面向过程到面向对象是软件设计诞生以来的迈出的最伟大的一步,面向对象程序设计成功解决了面向过程软件编程的低效率问题,并且彻底改变了人们的编程思维,为软件设计揭开了新的篇章。然而,要实现面向对象设计,彻底摆脱面向过程设计思维,并不仅仅是只要使用了一门面向对象的编程语言就能够达到的。使用面向对象设计,可以设计出优秀的软件,同样也可以设计出糟糕的软件。只有遵循一些特定的原则,才能设计出复用性高灵活性好的软件来。
在运用面向对象的思想进行软件设计时,需要遵循的原则一共有6个,他们是:
1.单一职责原则(SingleResponsibilityPrinciple)
2.里氏替换原则(LiskovSubstitutionPrinciple)
3.依赖倒置原则(DependenceInversionPrinciple)
4.接口隔离原则(InterfaceSegregationPrinciple)
5.迪米特法则(LowOfDemeter)
6.开闭原则(OpenClosePrinciple)
在软件设计的过程中,只要我们尽量遵循以上六条设计原则,设计出来的软件一定会是一个优秀的软件,它必定足够健壮、足够稳定,并以极大的灵活性来迎接随时而来的需求变更等因素。当完全明白这六个原则的含义时,小菜便完成了走向大牛的蜕变。
分享到:
相关推荐
标题“Python掌握设计模式”和描述中的“适合学习设计模式的各位”指明了文档的主要内容和目标受众。该文件主要关注的是Python编程语言以及在软件工程领域中极为重要的一个概念——设计模式。 首先,“Python掌握...
每个程序员都应该尽早学习并掌握设计模式,因为这不仅有助于应对面试中的相关问题,还能显著提升编程能力。 首先,设计模式在面试中扮演着关键角色。无论是前端、后端还是全栈工程师,设计模式都是面试官评估候选人...
作者还提供了详细的代码实现和示例,帮助读者更好地掌握设计模式的应用。 本书是一本非常实用的软件开发书籍,适合有一定编程基础的 IT 职场新人,对设计模式和编程思想感兴趣的人群。通过阅读本书,读者可以更好地...
设计模式是软件工程中的一种重要思想,它是在特定情境下,为解决常见问题而形成的一套最佳实践。在本文中,我们将深入探讨24种设计模式...对于任何有志于提升软件开发水平的人来说,理解和掌握设计模式都是至关重要的。
在学习这两本书时,读者不仅可以掌握设计模式的理论,还能通过实例代码加深理解。结合《Head First 设计模式》的生动讲解和《Java设计模式(第2版)》的具体实现,开发者可以更好地将设计模式融入到自己的编程实践中,...
通过本书的学习,读者能够快速掌握设计模式的核心思想,缩短学习曲线,最终在实际项目中灵活应用,创造出更加健壮的应用程序。 #### 内容解析:从概念到实践的全面指南 书籍内容涵盖了十个最重要的设计模式,这些...
在本书中,作者还分享了自己在设计模式方面的研究和实践经验,包括设计模式的原型、设计模式的分类、设计模式的应用等,并提供了一些常见的设计模式的示例代码,帮助读者更好地理解和掌握设计模式。 《JavaScript...
总之,这份压缩包文件是学习和掌握设计模式的宝贵资料,涵盖了创建型、结构型和行为型设计模式的代表例子。通过学习和实践这五个设计模式,开发者可以提高代码的可维护性、可读性和复用性,从而提升软件的质量和性能...
代码中的注释详细解释了每一步的目的和作用,有助于读者快速掌握设计模式的实质。同时,书中的例子往往选取了实际开发中可能遇到的问题,使得学习过程更具实战性。 设计模式的应用不仅仅局限于Java,它们是面向对象...
总的来说,掌握设计模式对于任何软件开发者来说都是至关重要的。它不仅能够提高代码质量,还能提升个人技术水平,为职场发展铺平道路。因此,无论是面试还是日常开发,都应该重视设计模式的学习和实践。
在Java开发中,掌握设计模式对于提升代码质量和开发效率至关重要。本资料"设计模式解析(第二版)"正是这样一本专注于此主题的资源。 设计模式通常分为三类:创建型模式、结构型模式和行为型模式。创建型模式关注...
通过刘伟老师的《Java设计模式》课后习题和模拟试题,读者可以系统地复习和检验自己的学习效果,进一步掌握设计模式的核心思想和实战技巧。在解答过程中,读者需要结合理论知识和实践经验,这有助于形成良好的编程...
如果你想要深入透彻地理解和掌握设计模式,并期望能真正把设计模式应用到项目中去,那么这是你不可错过的一本好书。 《研磨设计模式》难度为初级到中级,适合与所有开发人员、设计人员或者即将成为开发人员的朋友...
如果你想要深入透彻地理解和掌握设计模式,并期望能真正把设计模式应用到项目中去,那么这是你不可错过的一本好书。 《研磨设计模式》难度为初级到中级,适合与所有开发人员、设计人员或者即将成为开发人员的朋友...
5. **期末复习与考研**:对于准备期末考试或研究生入学考试的学生,理解和掌握设计模式不仅有助于理论考试,也有助于实际项目中的应用。设计模式的复习应包括模式的意图、适用性、参与者、协作、后果等方面。 6. **...
在Java开发中,掌握设计模式对于提升编程技能和解决复杂问题具有关键作用。 本书涵盖了23种经典的GOF(GoF,Gang of Four)设计模式,包括创建型、结构型和行为型三大类。创建型设计模式如单例(Singleton)、工厂...
实践是掌握设计模式的必经之路。通过大量编程,我们可以逐渐领悟模式的精髓,不断重构代码以优化设计。编程过程中的反思和总结,能够帮助我们识别设计上的不足,不断提高编程技艺。 最后,避免设计过度是保持系统...
这个压缩包中包含了20种经典的设计模式,每种模式都有代码实现,旨在帮助读者深入理解并快速掌握设计模式的运用。 首先,我们来探讨一下桥接模式(Bridge Pattern)。桥接模式是将抽象部分与实现部分分离,使它们...