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开发中,掌握设计模式对于提升代码质量和开发效率至关重要。本资料"设计模式解析(第二版)"正是这样一本专注于此主题的资源。 设计模式通常分为三类:创建型模式、结构型模式和行为型模式。创建型模式关注...
如果你想要深入透彻地理解和掌握设计模式,并期望能真正把设计模式应用到项目中去,那么这是你不可错过的一本好书。 《研磨设计模式》难度为初级到中级,适合与所有开发人员、设计人员或者即将成为开发人员的朋友...
如果你想要深入透彻地理解和掌握设计模式,并期望能真正把设计模式应用到项目中去,那么这是你不可错过的一本好书。 《研磨设计模式》难度为初级到中级,适合与所有开发人员、设计人员或者即将成为开发人员的朋友...
5. **期末复习与考研**:对于准备期末考试或研究生入学考试的学生,理解和掌握设计模式不仅有助于理论考试,也有助于实际项目中的应用。设计模式的复习应包括模式的意图、适用性、参与者、协作、后果等方面。 6. **...
在Java开发中,掌握设计模式对于提升编程技能和解决复杂问题具有关键作用。 本书涵盖了23种经典的GOF(GoF,Gang of Four)设计模式,包括创建型、结构型和行为型三大类。创建型设计模式如单例(Singleton)、工厂...
实践是掌握设计模式的必经之路。通过大量编程,我们可以逐渐领悟模式的精髓,不断重构代码以优化设计。编程过程中的反思和总结,能够帮助我们识别设计上的不足,不断提高编程技艺。 最后,避免设计过度是保持系统...
这个压缩包中包含了20种经典的设计模式,每种模式都有代码实现,旨在帮助读者深入理解并快速掌握设计模式的运用。 首先,我们来探讨一下桥接模式(Bridge Pattern)。桥接模式是将抽象部分与实现部分分离,使它们...
这个“设计模式课程设计模板”将帮助初学者系统地掌握设计模式的理论与实践,同时也为有经验的开发者提供了复习和巩固设计模式知识的机会。通过深入学习和实践,开发者能够构建更加优雅、高效且易于维护的软件系统。